gpt4 book ai didi

apache - 启动 Apache 后 Docker 容器关闭

转载 作者:行者123 更新时间:2023-12-02 19:31:54 25 4
gpt4 key购买 nike

好的,所以我已经根据需要设置了我的 docker 容器。

这是我当前的 Dockerfile:

FROM ubuntu:16.04

RUN apt-get update
RUN apt-get upgrade -y

RUN apt-get install -y \
build-essential sudo software-properties-common \
libboost-dev libboost-filesystem-dev libboost-program-options-dev \
libboost-regex-dev libboost-system-dev libboost-thread-dev \
libicu-dev libtiff5-dev libfreetype6-dev libpng12-dev \
libxml2-dev libproj-dev libsqlite3-dev libgdal-dev \
libcairo-dev libharfbuzz-dev

RUN apt-get install -y postgresql postgresql-contrib

RUN apt-get install -y nodejs

RUN apt-get install -y python3-dev python-dev git python-pip \
python-setuptools python-wheel python3-setuptools \
python3-pip python3-wheel python-cairo-dev libboost-python-dev

RUN apt-get install -y ruby ruby-dev

RUN apt-get install -y wget curl

RUN pip install --upgrade pip
RUN pip install mapnik

RUN sudo gem install awesome_print colorize twitter_cldr \
nokogiri unidecoder

RUN apt-get -y install apache2 php-pear lynx-cur

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid

EXPOSE 80

ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf

如果我构建它并使用 docker run -p 80:80 -it mycontainer 运行它,它运行良好。我可以通过终端,执行 /usr/bin/apache2ctl start ,服务器照常启动,我可以从主机浏览器通过 localhost 访问它。伟大的!

现在,我们的想法是简单地说 /usr/bin/apache2ctl start我的 Dockerfile 中的命令,这样我就不必每次容器启动时都编写它。

但是:如果我把 CMD ["/usr/sbin/apache2ctl", "start"]在我的 Dockerfile 的最后,构建并运行它(使用 docker run -p 80:80 -it mycontainer ),容器似乎启动了,输出了一条 Apache 消息然后它停止了,没有终端,什么都没有。 (它也不会在后台运行)。

怎么回事?我只想能够自动启动 Apache 并保持终端运行,这样我也可以在那里做事。

最佳答案

容器是隔离正在运行的应用程序的工具,它们一直运行到启动的应用程序退出。如果这个应用程序是一个 shell 或命令,它像你所做的那样在后台启动一个守护进程,当 shell 或命令返回时,容器将立即退出。

解决方案是在前台运行您的应用程序。使用 Apache 执行此操作的步骤已经使用官方图像完成,我建议您使用这些图像来构建您自己的图像。您可以see their Dockerfile here .你可以use their image on Dockerfile .

关于apache - 启动 Apache 后 Docker 容器关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com