2

Я пытаюсь обновить мой файл .htaccess в контейнере Docker. После обновления файла мне нужно перезапустить Apache. Всякий раз, когда я пытаюсь перезапустить Apache, используя команду service apache2 restart , я получаю следующую ошибку:

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs Action 'start' failed. The Apache error log may have more information. ...fail!

Когда я попал в журнал ошибок, новых ошибок нет. Вот как выглядит мой Dockerfile:

FROM ubuntu:12.04

# Install dependencies
RUN apt-get update -y
RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-curl vim

# Install app
RUN rm -rf /var/www/*
ADD src /var/www

# Configure apache
RUN a2enmod rewrite
RUN chown -R www-data:www-data /var/www
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D",  "FOREGROUND"]

2 ответа2

1

TLDR; Команда перезапустить Apache в вашем случае это kill -USR1 1

Немного вещей должны быть очищены здесь:

  1. Ваш образ докера работает под Apache напрямую, используя CMD.
  2. это означает, что основной процесс apache всегда будет иметь PID = 1, и вы не используете систему инициализации.
  3. Вы пытаетесь перезапустить apache с помощью service команды, которая зависит от системы инициализации. Doh
  4. Альтернативный способ постепенного перезапуска apache - отправить сигнал основному процессу. Подробнее читайте здесь: https://httpd.apache.org/docs/current/stopping.html
0

В соответствии с вашим Dockerfile вы включаете свои HTML-файлы при создании образа Docker:

ADD src /var/www

Не могли бы вы объяснить, почему вам нужно отредактировать файл .htaccess после запуска вашего изображения? Если вам нужен другой файл .htaccess на разных хостах, "докер" может использовать том данных при запуске вашего контейнера:

docker run -v /path/to/host.htaccess:/var/www/.htaccess user/image

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .