У меня есть следующая настройка:
1-я машина. Сервер Docker с интеграцией Github.
2-я машина. Производство с помощью docker-agent, которое запускается следующим образом:
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
Репо со следующим .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>]
поэтому, когда я запускаю сборку с этим .drone.yml, я получаю следующий вывод:
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.
Но если я вставлю docker ps
или netstat -tulpn
между cd <dir_with_docker-compose.yml>
и docker-compose up -d <service_name>
, служба запустится успешно.
Почему это происходит?