Доброе утро!
У меня есть несколько проектов, которые стоят на 1 сервере
Как можно настроить nginx в docker-compose так, чтобы он использовал несколько конфигов
На данный момент мой docker-compose.yml выглядит так:
version: '3.6'
services:
postgres:
image: postgres:12
restart: always
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: qwe
POSTGRES_PASSWORD: qwe
POSTGRES_DB: qwe
graphql-engine:
image: hasura/graphql-engine:v1.2.2
ports:
- "8080:8080"
depends_on:
- "postgres"
restart: always
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://qwe:qwe@postgres:5432/qwe
HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
## uncomment next line to set an admin secret
HASURA_GRAPHQL_ADMIN_SECRET: admin
backend:
build: ./backend/
container_name: backend
restart: always
ports:
- '4000:4000'
env_file:
- ./backend/.env
nginx:
restart: always
image: nginx:stable
container_name: hasura-nginx
ports:
- "80:80"
- "443:443"
volumes:
- /root/certs/:/root/certs/
- ./nginx:/etc/nginx/conf.d
depends_on:
- graphql-engine
volumes:
db_data:
/nginx/default.conf
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name hasura.test.ru;
ssl_certificate /root/certs/cert.crt;
ssl_certificate_key /root/certs/cert.key;
location / {
proxy_pass http://graphql-engine:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name api.test.ru;
ssl_certificate /root/certs/cert.crt;
ssl_certificate_key /root/certs/cert.key;
location / {
proxy_pass http://backend:4000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Как сделать, чтобы для graphql-engine и backend был свой docker-compose.yml?
На данный момент этот способ работает, но чтобы обновить какой-либо сервис, приходится заново все эти компоненты билдить