I have following setup:
1st machine. Docker server with Github integration.
2nd machine. Production with docker-agent, that starts up this way:
docker run -d
-e DRONE_SERVER=<ip:host>
-e DRONE_SECRET=<secret>
-v /var/run/docker.sock:/var/run/docker.sock
--restart=always
--name=drone-agent
drone/agent:0.8 agent
Repo with following .drone.yml:
pipeline:
run:
image: docker/compose:1.21.2
commands:
- cd <dir_with_docker-compose.yml>
- docker-compose up -d <service_name>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
when:
branch: [<branch_name>]
so when I trigger build with this .drone.yml, I get following output:
cd <dir_with_docker-compose.yml>
docker-compose up -d <service_name>
Starting docker_<service_name>_1 ...
Starting docker_<service_name>_1 ... error
ERROR: for docker_<service_name>_1 Cannot start service <service_name>: driver failed programming external connectivity on endpoint docker_<service_name>_1
(<hash>): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: for <service_name> Cannot start service <service_name>: driver failed programming external connectivity on endpoint docker_<service_name>_1
(<hash>): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
Encountered errors while bringing up the project.
But if I insert docker ps
or netstat -tulpn
between cd <dir_with_docker-compose.yml>
and docker-compose up -d <service_name>
service starts up successfully.
Why does this happen?