我在 Dockerfile 的末尾有这个:
ENTRYPOINT service apache2 start
我得到这个记录:
* Starting Apache httpd web server apache2
然后我的容器将退出 - 它不应该是一个错误,我只是认为容器退出是因为该进程是一个守护进程。有没有办法让它保持打开状态?
我在 Dockerfile 的末尾有这个:
ENTRYPOINT service apache2 start
我得到这个记录:
* Starting Apache httpd web server apache2
然后我的容器将退出 - 它不应该是一个错误,我只是认为容器退出是因为该进程是一个守护进程。有没有办法让它保持打开状态?
所以这应该是正确的答案:
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["apachectl"]
也就是说,如果您安装了 apache:
RUN apt-get install -y apache2
所以我可以让容器保持活力:
ENTRYPOINT service apache2 restart && /bin/bash -c "trap : TERM INT; sleep infinity & wait"
但我不知道如何将标准输出/标准错误从 Apache 获取到 Docker 容器的标准输出/标准错误,有人知道吗?如果我让容器保持活动状态,我可以确认 apache 正在运行。
我也找到了这个例子:
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]
但我找不到我的 apache2 可执行文件的路径。