我正在尝试创建一个将自动启动 apache 的 Dockerfile。没有任何效果。但是如果我登录到容器并运行 service apache2 start
它可以工作。为什么我不能从我的 Dockerfile 运行该命令?
FROM ubuntu
# File Author / Maintainer
MAINTAINER rmuktader
# Update the repository sources list
RUN apt-get update
# Install and run apache
RUN apt-get install -y apache2 && apt-get clean
#ENTRYPOINT ["/usr/sbin/apache2", "-k", "start"]
#ENV APACHE_RUN_USER www-data
#ENV APACHE_RUN_GROUP www-data
#ENV APACHE_LOG_DIR /var/log/apache2
EXPOSE 80
CMD service apache2 start
原文由 Rayhan Muktader 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题出在这里:
CMD service apache2 start
当你执行这个命令过程时apache2
将从外壳中分离。但是 Docker 仅在主进程处于活动状态时才起作用。解决方案是在 前台 运行 Apache。
Dockerfile
必须如下所示:(仅更改了最后一行)。