Tengo dos cronjob para el servicio run
php
al mismo tiempo.
Solo un comando run
ejecuta correctamente
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
Eso probablemente significa que el contenedor se está creando entre el momento en que verificamos la disponibilidad y el momento en que emitimos el comando create
. Una solución sería ejecutar esos dos trabajos en momentos ligeramente diferentes (un intervalo de 5 segundos probablemente sería suficiente)
También encuentro esto al ejecutar docker-compose up foo bar
& docker-compose up baz bar
programáticamente en diferentes pestañas tmux. Parece que si la creación falla, debería volver a ejecutar la verificación e intentar (esperar y) adjuntar.
Estuche de reproducción muy simple:
➤ 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
En mi caso, el problema es un CI que activa trabajos paralelos según su programación interna. Es muy triste tener que piratear esa programación solo por esto.