Возникла странная проблема при запуске контейнера докеров с помощью docker-compose. Это докер-контейнер с apache + php
Если запустить вручную - все ок.
[root@opcis proxy-handler]# docker run -itd -v proxy_html:/var/www/html -p 9001:80 --name=webapp-handler2 jaels/proxy-handler
0b217e295e345056308daedaea441d2b123dd05c7cf29d5c219939f557f8374b
[root@opcis proxy-handler]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b217e295e34 jaels/proxy-handler "/bin/sh -c '/usr/sbi" 6 seconds ago Up 1 seconds 0.0.0.0:9001->80/tcp webapp-handler2
Но если я запустил его с помощью docker-compose - он не сработает с уже запущенным httpd (pid 8)
[root@opcis proxy-handler]# cat docker-compose.yml
version: "2"
services:
proxy-handler:
image: jaels/proxy-handler
ports:
- 9001:80
volumes:
- ./webdata:/var/www/html
[root@opcis proxy-handler]# docker-compose up
Creating proxyhandler_proxy-handler_1
Attaching to proxyhandler_proxy-handler_1
proxy-handler_1 | Passing arguments to httpd using apachectl is no longer supported.
proxy-handler_1 | You can only start/stop/restart httpd using this script.
proxy-handler_1 | If you want to pass extra arguments to httpd, edit the
proxy-handler_1 | /etc/sysconfig/httpd config file.
proxy-handler_1 | httpd (pid 8) already running
proxyhandler_proxy-handler_1 exited with code 0
[root@opcis proxy-handler]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------
proxyhandler_proxy-handler_1 /bin/sh -c /usr/sbin/apach ... Exit 0
См. Dockerfile и скрипт run-apache.sh в этот репозиторий. Короче говоря, если процесс httpd считает, что он уже запущен, он не запускается снова. Добавление сценария запуска в Dockerfile, который удаляет этот файл pid, позволяет запускать httpd.