我在下面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
参数?
编辑:提高的问题
留下一个例子,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
overwrited为主机IP地址,我想我可以用一个ENV
var和传递给build
作为一个有值论据, 我是对的?如果不是,那么如何获得该设置所需的主机IP地址?
好了,我不想'copy'上''的ZZ-php.ini'的/ etc/PHP5 /的Apache2/php.ini'我想改变默认值,'的/ etc/PHP5/Apache2的/ php.ini'与'zz-php.ini'中提供的一样,那是什么'COPY'呢? – ReynierPM
你的'zz-php.ini'文件是你在本地使用的文件吗? (在你的笔记本电脑上说吧)。 COPY会将其复制到笔记本电脑的图像中。如果要移动/重命名图像中已存在的文件,则需要在RUN语句中执行该操作。见https://docs.docker.com/engine/reference/builder/#/copy – Alkaline
我想我不会跟着你或你不理解我,看到OP请我的编辑,并感谢您 – ReynierPM