我正在使用运行 php 环境的容器,并在我的 Dockerfile 中从开发模板设置 php.ini
cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
然后,一旦容器准备好,我就会用文本编辑器打开文件并修改几行(内存限制,最大上传大小等)
我可以从命令行(从 Dockerfile)编辑这些行,同时仍然使用来自 docker hub 的默认模板作为基础吗?
(这样做的目的是避免保留并安装来自我的主机的更新的文件的本地副本)。
答案1
您可以创建一个新的 Docker 容器并编辑该 Dockerfile 中的文件:
FROM whatevercontaineryoucurrentlyuse:latest
RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini && \
sed -i 's/upload_max_filesize = 20M/upload_max_filesize = 128M/g' /usr/local/etc/php/php.ini && \
sed -i 's/whatever_option = 1234/whatever_option = 4321/g' /usr/local/etc/php/php.ini
获得此 Dockerfile 后,使用以下命令创建新容器:
docker build -t yournewcontainername:latest .
答案2
您可以在 php 安装的 conf.d 文件夹中添加自己的 .ini 文件。即 /usr/local/etc/php/conf.d/my-php.ini
这应该会替换所有先前的声明并自动获取。您可能已经在其中添加了其他文件,例如 docker-php-ext-xdebug.ini。