Eu tenho dois cronjob para run
php
serviço ao mesmo tempo.
Apenas um comando run
executado corretamente
Cannot create container for service php: Conflict. The container name "/folder_php_run_1" is already in use by container {hashhere}. You have to remove (or rename) that container to be able to reuse that name.
Command exited with non-zero status 1
Isso provavelmente significa que o contêiner está sendo criado entre o momento em que verificamos a disponibilidade e o momento em que realmente emitimos o comando create
. Uma solução seria executar essas duas tarefas em momentos ligeiramente diferentes (um intervalo de 5 segundos provavelmente seria o suficiente)
Eu também encontro isso executando docker-compose up foo bar
& docker-compose up baz bar
programaticamente em diferentes guias do tmux. Parece que se a criação falhar, ele deve executar novamente a verificação e tentar (esperar e) anexar.
Caso de reprodução muito simples:
➤ cat docker-compose.yml
version: "2.2"
services:
test:
image: alpine
➤ docker-compose run --rm test true
Creating network "test_default" with the default driver
➤ docker-compose run --rm test docker-compose run --rm test true &; docker-compose run --rm test true
ERROR: Cannot create container for service test: Conflict. The container name "/test_test_run_1" is already in use by container "76db8705667961966468d66d0667417862ad6edb3fb4c09b95a8ebab4ec36bf8". You have to remove (or rename) that container to be able to reuse that name.
Job 4, 'docker-compose run --rm test do…' has ended
No meu caso, o problema é um IC que dispara tarefas paralelas com base em sua programação interna. É muito triste ter que hackear essa programação só por causa disso.