Compose: service_run_ + 1

Созданный на 31 мар. 2017  ·  3Комментарии  ·  Источник: docker/compose

У меня есть два cronjob для сервиса run php одновременно.

Только одна команда run выполняется правильно

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

Все 3 Комментарий

Вероятно, это означает, что контейнер создается между моментом, когда мы проверяем доступность, и моментом, когда мы фактически запускаем команду create . Решением было бы запускать эти два задания в несколько разное время (вероятно, будет достаточно 5-секундного интервала).

Я тоже сталкиваюсь с этим, запуская docker-compose up foo bar & docker-compose up baz bar программно на разных вкладках tmux. Похоже, что если создание не удается, он должен повторно запустить проверку и попытаться (подождать и) присоединиться.

Очень простой случай воспроизведения:

➤ 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

В моем случае проблема заключается в CI, который запускает параллельные задания в соответствии со своим внутренним расписанием. Очень жаль, что приходится взламывать это расписание только из-за этого.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги