У меня есть четыре услуги service1, service2, service3, postgres
.Каждый выставляется через какой-то порт.Я хочу, чтобы сервис postgres
был доступен только из контейнеров Docker, а не из ВМ через команду psql
(отключение доступа извне Docker).
Вот мой docker-compose.local.yml
version: '3'
services:
postgres:
container_name: postgres
image: registry.domain.com/postgres-multi:9.5
restart: unless-stopped
ports:
- "5432:5432"
environment:
LC_ALL: C.UTF-8
POSTGRES_USER: postgres
POSTGRES_MULTIPLE_DATABASES: service1,service2,service3
volumes:
- postgres_data:/var/lib/postgresql/data/
service1:
container_name: service1
build:
context: ./service1
args:
environ: local
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8001:8000"
depends_on:
- postgres
environment:
DATABASE_URL: 'postgres://postgres/service1'
DJANGO_MANAGEPY_MIGRATE: 'on'
DJANGO_MANAGEPY_COLLECTSTATIC: 'on'
DJANGO_LOADDATA: 'off'
DOMAIN: '0.0.0.0'
volumes:
- ./service1/app:/home/service1/app/app
service2:
container_name: service2
build:
context: ./service2
args:
environ: local
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8002:8000"
depends_on:
- postgres
- service1
environment:
DATABASE_URL: 'postgres://postgres/service2'
DJANGO_MANAGEPY_MIGRATE: 'on'
DJANGO_MANAGEPY_COLLECTSTATIC: 'on'
DJANGO_LOADDATA: 'on'
DOMAIN: '0.0.0.0'
volumes:
- ./service2/app:/home/service2/app/app
service3:
container_name: service3
build:
context: ./service3
args:
environ: local
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8003:8000"
depends_on:
- postgres
- service1
environment:
DATABASE_URL: 'postgres://postgres/service3'
DJANGO_MANAGEPY_MIGRATE: 'on'
DJANGO_MANAGEPY_COLLECTSTATIC: 'on'
DJANGO_LOADDATA: 'on'
DOMAIN: '0.0.0.0'
volumes:
- ./service3/app:/home/service3/app/app
volumes:
postgres_data: