Похожие вопросы

Проблема с именем узла
Использование sed для включения.файлы htaccess в конфигурации Apache
Насколько безопасен мой личный Докувики, размещенный на веб-сервере?
Почему мой локальный сайт отображает тестовую страницу Apache2
Как установить расширение SQLite PDO на Ubuntu
Как исправить установку PHP, если xml2-config отсутствует?
Как проверить, если файл обслуживается Apache или nginx (nginx обратный прокси)
Конфигурация доступа SVN
Как запустить Visual Studio 2008 и сервер WAMP на той же локальной машине под управлением WIndows7?
Установка нескольких сред PHP на OS X Snow Leopard
Не удается получить доступ к Apache в моем CentOS Virtualbox
Проклятый маленький Linux с XAMPP Linux для создания веб-сервера на машине P4 или Mele A2000
Виртуальные хосты Apache: корень документа как удаленный IP вместо локальной папки
Отказано в разрешении, так как отсутствуют разрешения поиска для компонента пути после chmod и chgrp
Развертывание Django с помощью Phusion Passenger-ошибка загрузки файла

Перезапустить 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"]
5
задан root
источник

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 2016-04-28 21:12:25
источник

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

ADD src /var/www

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

docker run -v /path/to/host.htaccess:/var/www/.htaccess user/image
0
отвечен Patryk Sidzina 2016-05-13 09:35:17
источник

Другие вопросы apache-http-server docker htaccess