Я использую проект Docker on Rails.Я нашел только один способ надежно связать сервисы друг с другом, то есть, указав имя контейнера в docker-compose.yml
:
version: '3'
services:
db:
container_name: sociaball_db
...
web:
container_name: sociaball_web
...
sphinx:
container_name: sociaball_sphinx
...
Так что теперь я могу написать что-то вроде этого в database.yml
и перестать беспокоиться о, скажем, базе данныхконтейнер случайным образом меняет свое имя с db
на db_1
:
common: &common
...
host: sociaball_db
Однако я могу одновременно запускать только три контейнера.Всякий раз, когда я пытаюсь запустить docker-container up
, если некоторые контейнеры не работают, это вызывает ошибку.
ERROR: for sociaball_db Cannot create container for service db: Conflict. The container name "/sociaball_db" is already in use by container "ee787c06db7b2a0205e3c1e552b6a5496545a78fe12d942fb792b27f3c38769c". You have to remove (or rename) that container to be able to reuse that name.
Это очень неудобно.Это часто приводит к явному удалению всех контейнеров, чтобы убедиться, что у них нет возможности сломаться.Есть ли способ обойти это?