如何在ubuntu docker容器中自动启动apache2?

我正在尝试创建一个将自动启动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

回答:

问题出在这里:CMD service apache2

start执行此命令时,进程apache2将与外壳分离。但是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? 的全部内容, 来源链接: utcz.com/qa/429436.html

回到顶部