Compose: service_run_+1

Erstellt am 31. März 2017  ·  3Kommentare  ·  Quelle: docker/compose

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
arerun kinbug

Alle 3 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen