116 lines
2.8 KiB
YAML
116 lines
2.8 KiB
YAML
services:
|
|
mongodb:
|
|
image: mongo
|
|
container_name: tort-mongodb
|
|
restart: always
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
|
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASS}
|
|
ports:
|
|
- "127.0.0.1:${MONGO_PORT}:27017"
|
|
networks:
|
|
- tort-net
|
|
command: mongod --quiet
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "1"
|
|
healthcheck:
|
|
test: [ "CMD", "mongosh", "--username", "${MONGO_USER}", "--password", "${MONGO_PASS}", "--eval", "db.runCommand({ ping: 1 })" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3.13-management-alpine
|
|
container_name: tort-rabbitmq
|
|
restart: always
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: ${RABBIT_USER}
|
|
RABBITMQ_DEFAULT_PASS: ${RABBIT_PASS}
|
|
ports:
|
|
- "127.0.0.1:5672:5672"
|
|
- "127.0.0.1:15672:15672"
|
|
networks:
|
|
- tort-net
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "1"
|
|
healthcheck:
|
|
test: [ "CMD", "rabbitmq-diagnostics", "-q", "ping" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
backend:
|
|
build:
|
|
context: ./app
|
|
dockerfile: dockerfile.app
|
|
image: tort-backend:latest
|
|
container_name: tort-backend
|
|
restart: always
|
|
depends_on:
|
|
mongodb:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
environment:
|
|
MONGO_HOST: mongodb
|
|
MONGO_PORT: "27017"
|
|
MONGO_USER: ${MONGO_USER}
|
|
MONGO_PASS: ${MONGO_PASS}
|
|
RABBIT_HOST: rabbitmq
|
|
RABBIT_PORT: "5672"
|
|
RABBIT_USER: ${RABBIT_USER}
|
|
RABBIT_PASS: ${RABBIT_PASS}
|
|
MODERATION_SECRET: ${MODERATION_SECRET}
|
|
TG_BOT_TOKEN: ${TG_BOT_TOKEN}
|
|
DEV_MODE: ${DEV_MODE:-false}
|
|
LOG_LEVEL: ${LOG_LEVEL:-INFO}
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "2"
|
|
ports:
|
|
- "127.0.0.1:5000:5000"
|
|
networks:
|
|
- tort-net
|
|
|
|
tg-bot:
|
|
build:
|
|
context: ./app
|
|
dockerfile: dockerfile.bot
|
|
image: tort-tg-bot:latest
|
|
container_name: tort-tg-bot
|
|
restart: always
|
|
depends_on:
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
backend:
|
|
condition: service_started
|
|
environment:
|
|
TG_ADMIN_CHAT_ID: ${TG_ADMIN_CHAT_ID}
|
|
API_BASE_URL: http://backend:5000
|
|
MODERATION_SECRET: ${MODERATION_SECRET}
|
|
TG_BOT_TOKEN: ${TG_BOT_TOKEN}
|
|
RABBIT_HOST: rabbitmq
|
|
RABBIT_PORT: "5672"
|
|
RABBIT_USER: ${RABBIT_USER}
|
|
RABBIT_PASS: ${RABBIT_PASS}
|
|
LOG_LEVEL: ${LOG_LEVEL:-INFO}
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "1"
|
|
networks:
|
|
- tort-net
|
|
|
|
networks:
|
|
tort-net:
|
|
driver: bridge
|