Окружающей среды:Apache не HTTPd себя должным образом при запуске Docker изображения
- Docker version 1.6.2, build ba1f6c3/1.6.2
- Centos 7
- apache httpd 2.4.6
Я создал Docker образ, Apache HTTPD. Внутри запускается простой скрипт оболочки, запускающий сервер httpd. Мой start-httpd.sh
httpd -k start
#to keep process running
tail -f /dev/null
Теперь конфигурация я скопировать докер образ похож на тот, который я работать на моей основной хост-машине.
Пример конфигурации из балансировки нагрузки:
<VirtualHost localhost:8000>
ServerName localhost
ProxyRequests off
ProxyPreserveHost on
ErrorLog logs/error_domain.log
SetHandler balancer-manager
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order allow,deny
Allow from all
</Location>
<Proxy balancer://idp>
BalancerMember http://punvm-core05.sigmasys.net:9091
BalancerMember http://punvm-core06.sigmasys.net:8091 status=+H
#ProxySet lbmethod=byrequests
ProxySet lbmethod=bytraffic
</Proxy>
ProxyPass /homepage balancer://idp
ProxyPassReverse /homepage balancer://idp
ProxyPass /assets balancer://idp/assets
ProxyPassReverse /assets balancer://idp/assets
ProxyPass /saml-idp balancer://idp/saml-idp
ProxyPassReverse /saml-idp balancer://idp/saml-idp
</VirtualHost>
Теперь это, как я запустить Docker изображение,
docker run -d -p 10000:8000 auth/loadbalancer /home/start-httpd.sh
Я могу получить доступ к http://localhost:10000 но страница я ожидаю отличается
Прикрепление моментального снимка ожидаемого и неожиданного веб-сайта httpd
Ожидаемое изображение, это от моего хозяина машины:
Неожиданное изображение при доступе апача отображенный к порту внутри докер, как указано в вышеприведенной команде из докер
Кроме того, когда я войти в систему в контейнер и сделать команду curl, в ответ я могу увидеть страницу балансировки нагрузки, но из-за пределов контейнера я вижу ответ неожиданного изображения.
Пожалуйста, объясните, почему это происходит, я что-то пропустил.
Спасибо ... Я нашел из вашего вопроса, что я должен добавить «tail -f/dev/null» :) По какой-то причине опция -DFOREGROUND в Dockerfile репозитория apache не будет работать для меня. – SidJ
да вот как я держу свой контейнер в рабочем состоянии .. :) – Sohan