【问题标题】:Restarting Apache Inside Docker and Keeping Environment Variables在 Docker 中重新启动 Apache 并保留环境变量
【发布时间】: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。

【问题讨论】:

    标签: docker env


    【解决方案1】:

    查看a similar issue on Ask Ubuntu,我好像错误地重新启动了 Apache。

    我一直在运行service apache2 restart。如果我改为运行apache2ctl restart,则没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-06
      • 2010-11-24
      • 2015-02-07
      • 1970-01-01
      • 2023-03-15
      • 2016-07-16
      相关资源
      最近更新 更多