Ich habe zwei Cronjobs für run
php
Service zur gleichen Zeit.
Nur ein run
Befehl wird korrekt ausgeführt
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
Das bedeutet wahrscheinlich, dass der Container zwischen der Überprüfung der Verfügbarkeit und der tatsächlichen Ausgabe des Befehls create
. Eine Lösung wäre, diese beiden Jobs zu leicht unterschiedlichen Zeiten auszuführen (ein 5-Sekunden-Intervall würde wahrscheinlich ausreichen).
Ich begegne diesem auch, indem ich docker-compose up foo bar
& docker-compose up baz bar
programmgesteuert in verschiedenen tmux-Tabs ausführe. Wenn die Erstellung fehlschlägt, scheint es, als ob es die Prüfung erneut ausführen und versuchen sollte, (zu warten und) anzuhängen.
Sehr einfacher Nachbaukoffer:
➤ 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
In meinem Fall ist das Problem ein CI, das basierend auf seinem internen Zeitplan parallele Jobs auslöst. Es ist sehr traurig, diese Terminplanung nur deswegen hacken zu müssen.