ОК, поэтому я настроил свой док-контейнер так, как мне нужно.
Это мой текущий 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
), контейнер, кажется,start, выводит сообщение Apache, а затем останавливается, без терминала, ничего.(и при этом он не работает в фоновом режиме).
Что происходит?Я просто хочу иметь возможность автоматически запускать Apache и поддерживать работоспособность терминала, чтобы я тоже мог там что-то делать.