У меня есть файл docker-compose, содержащий одну базу данных и множество веб-приложений.
Я хотел бы иметь эксклюзивный файл docker-compose только для БД и другой файл docker-compose для веб-приложений.Это поможет мне перезапустить docker-compose веб-приложений без автоматического перезапуска БД.
К сожалению, даже после многих разных попыток docker-compose веб-приложений не может «зависеть» (или подключаться) к базе данных, работающей всеть, сгенерированная docker-compose базы данных.
Например,
БД и веб-приложение в одном и том же docker-compose, что прекрасно работает.
docker-compose-adminer-with-db.yml
version: '2'
services :
db:
image: postgres:10-alpine
ports:
- "5432:5432"
environment:
POSTGRES_USER: user1
POSTGRES_PASSWORD: changeme
POSTGRES_DB: tododb
admin:
image: adminer
restart: always
depends_on:
- db
ports:
- 8080:8080
Что бы я хотел
Docker-compose для db
docker-compose-db.yml
version: '2'
services :
db:
image: postgres:10-alpine
ports:<br/>
- "5432:5432"
environment:
POSTGRES_USER: user1
POSTGRES_PASSWORD: changeme
POSTGRES_DB: tododb
Docker-compose для веб-приложений
docker-compose-adminer.yml
version: '2'
services :
admin:
image: adminer
restart: always
depends_on:
- db
ports:
- 8080:8080
networks:
- composeforani_default
$ docker-compose -f docker-compose-db.yml up -d
Creating network "myapp_default" with the default driver
Creating myapp_db_1 ... done</p>
<p>$ docker network list
NETWORK ID NAME DRIVER SCOPE
4eb66db9e09e bridge bridge local
8290604a966b host host local
1752afa36757 myapp_default bridge local
d14d3369531c none null local</p>
<p>$ docker-compose -f docker-compose-adminer.yml up -d
<strong>ERROR: Service 'admin' depends on service 'db' which is undefined.</strong>