Перезапустить apache на Docker

Я пытаюсь обновить мой .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"]
15
задан root
14.11.2022 5:38 Количество просмотров материала 3419
Распечатать страницу

2 ответа

TLDR; команда перезапуска apache в вашем случае kill -USR1 1

несколько вещей, которые должны быть очищены здесь:

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

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

ADD src /var/www

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

docker run -v /path/to/host.htaccess:/var/www/.htaccess user/image
0
отвечен Patryk Sidzina 2022-11-15 15:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх