Я работаю в следующем Dockerfile:Заменить конфигурацию по умолчанию с моим собственным в Докер изображение
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install -y \
curl \
apache2 \
php5 \
php5-cli \
libapache2-mod-php5 \
php5-gd \
php5-json \
php5-mcrypt \
php5-mysql \
php5-curl \
php5-memcached \
php5-mongo \
zend-framework
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
chown www-data /usr/local/bin/composer && composer --version
# Install usefull PHP tools
RUN composer global require sebastian/phpcpd && \
composer global require phpmd/phpmd && \
composer global require squizlabs/php_codesniffer
# Install xdebug after we install composer since it cause issues
# see https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
RUN apt-get install -y php5-xdebug
Как вы можете заметить, это установить PHP 5.5.x и поставляется с конфигурацией по умолчанию, который я хотел бы переопределить мои собственные значения.
У меня есть следующая структура каталогов:
docker-php55/
├── container-files
│ ├── config
│ │ └── init
│ │ └── vhost_default
│ └── etc
│ └── php.d
│ ├── zz-php-directories.ini
│ └── zz-php.ini
├── Dockerfile
├── LICENSE
├── README.md
└── run
файловсписок zz-php-directories.ini
и zz-php.ini
являются моими конфигурациями, что я должен написать в /etc/php5/apache2/php.ini
при создании изображения. Содержание файлов заключается в следующем:
zz-php.ini
; Basic configuration override
expose_php = Off
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M
date.timezone = UTC
max_execution_time = 120
; Error reporting
display_errors = stderr
display_startup_errors = Off
error_reporting = E_ALL
; A bit of performance tuning
realpath_cache_size = 128k
; OpCache tuning
opcache.max_accelerated_files = 32000
; Temporarily disable using HUGE PAGES by OpCache.
; This should improve performance, but requires appropriate OS configuration
; and for now it often results with some weird PHP warning:
; PHP Warning: Zend OPcache huge_code_pages: madvise(HUGEPAGE) failed: Invalid argument (22) in Unknown on line 0
opcache.huge_code_pages=0
; Xdebug
[Xdebug]
xdebug.remote_enable = true
xdebug.remote_host = "192.168.3.1" // this IP should be the host IP
xdebug.remote_port = "9001"
xdebug.idekey = "XDEBUG_PHPSTORM"
zz-php-directories.ini
; Configure temp path locations
sys_temp_dir = /data/tmp/php
upload_tmp_dir = /data/tmp/php/uploads
session.save_path = /data/tmp/php/sessions
uploadprogress.file.contents_template = "/data/tmp/php/upload_contents_%s"
uploadprogress.file.filename_template = "/data/tmp/php/upt_%s.txt"
Как переопределить php.ini
параметры по умолчанию на изображении с теми, на этих файлов при создании образа?
EDIT: Улучшить вопрос
Чтобы оставить пример, zz-php.ini
является локальный файл помещен в моем ноутбуке | PC. Как только я устанавливаю PHP на изображении, он поставляется с файлом конфигурации по умолчанию, это означает, что у меня должен быть файл под /etc/php5/apache2/php.ini
.
Этот файл конфигурации по умолчанию уже имеет значения по умолчанию, например: expose_php = On
(опять же это значение по умолчанию, другие - ;realpath_cache_size =
), поэтому я хочу изменить значение для файла по умолчанию со значением из моего файла другими словами:
default (as in /etc/php5/apache2/php.ini) expose_php = On
override (as in zz-php.ini) expose_php = Off
в конце я должен иметь значения от zz-php.ini
перезаписан в /etc/php5/apache2/php.ini
Что касается IP-адрес хоста, я думаю, я мог бы использовать ENV
вар и перейти к build
как argume nt, я прав? Если нет, то как вы получите IP-адрес хоста, необходимый для этой настройки?
Ну, я не хочу «копировать» 'zz-php.ini' на'/etc/php5/apache2/php.ini' Я хочу изменить значения по умолчанию для '/ etc/php5/apache2/php.ini' с теми, которые предоставляются в 'zz-php.ini', это то, что делает' COPY'? – ReynierPM
Ваш 'zz-php.ini' файл - это файл, который у вас есть локально? (скажем, на вашем ноутбуке). Копия скопирует его на изображение с вашего ноутбука. Если вы хотите переместить/переименовать файл, который уже находится на изображении, вам необходимо выполнить операцию в инструкции RUN. См. Https://docs.docker.com/engine/reference/builder/#/copy – Alkaline
Я думаю, что я не буду следовать за вами или вы не понимаете меня, см. Мое редактирование на OP, пожалуйста и спасибо – ReynierPM