【发布时间】:2016-03-31 11:12:16
【问题描述】:
上下文
我是 using environment variables with docker 来配置我的应用程序。这样,单个构建的映像可以为需要不同配置的许多不同用户提供服务。
在开发的时候,我经常进入容器,在重启 Apache 之前进行一些调整。这可能类似于编辑 php.ini 文件以打开调试信息。但是,如果我这样做,PHP 将无法访问所有已设置的环境变量,并且应用程序将停止工作。
问题
有没有办法可以在 docker 容器中重新启动 Apache 服务器,并保持对在部署时使用 docker run ... -e foo=bar 传入的 PHP 中所有环境变量的访问权限?
额外信息
我用来进入docker的脚本如下图:
#!/bin/bash
EXPECTED_NUM_ARGS=1;
if [ "$#" -ne $EXPECTED_NUM_ARGS ]; then
# user didn't specify which container ID, assume the latest one
CONTAINER_ID=`/usr/bin/docker ps -q --no-trunc | /bin/sed -n 1p`
/usr/bin/docker exec -it $CONTAINER_ID env TERM=xterm bash
else
# enter the container the user specified
/usr/bin/docker exec -it $1 env TERM=xterm bash
fi
以防万一,我不使用Apache作为容器的前台进程,因此我可以在容器不停止的情况下重新启动Apache。
【问题讨论】: