+-
如何在ubuntu docker容器中自动启动apache2?
我正在尝试创建一个自动启动Apache的Dockerfile.没有任何效果.但是,如果我登录容器并运行服务apache2启动它的工作原理.为什么我不能从我的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
最佳答案
问题出在这里:CMD服务apache2 start当你执行这个命令时,apache2将从shell中分离出来.但Docker仅在主进程处于活动状态时才能工作.

解决方案是在前台运行Apache. 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 apachectl -D FOREGROUND
点击查看更多相关文章

转载注明原文:如何在ubuntu docker容器中自动启动apache2? - 乐贴网