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