Files
thisORthat/docker-compose.yml
T
2026-09-01 11:04:44 +03:00

115 lines
2.7 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}
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_BOT_TOKEN: ${TG_BOT_TOKEN}
TG_ADMIN_CHAT_ID: ${TG_ADMIN_CHAT_ID}
API_BASE_URL: http://backend:5000
MODERATION_SECRET: ${MODERATION_SECRET}
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