Having strange problem when running docker container with docker-compose.
It's a docker container with apache+php
If i run it manually – everything ok.
[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
But if i run it with docker-compose – it fails with "httpd (pid 8) already running"
[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
Best Answer
See the Dockerfile and run-apache.sh script in this repository. In short, if the httpd process thinks it's already running, then it won't start again. Adding a startup script to the Dockerfile that removes that pid file allows httpd to start.