Files
tripwithbonus/docker-compose.yml
2025-05-15 18:26:23 +03:00

128 lines
2.9 KiB
YAML

name: tripwb
networks:
tripwb:
name: tripwb
driver: bridge
services:
caddy:
image: caddy:alpine
container_name: tripwb-caddy-server
depends_on:
tripwb-backend-app:
condition: service_healthy
ports:
- 80:80
- 443:443
volumes:
- caddy-config:/config
- caddy-data:/data
- ./Caddyfile:/etc/caddy/Caddyfile:ro
networks:
- tripwb
tripwb-frontend-app:
build:
context: frontend/
# image: tripwb-frontend
container_name: tripwb-frontend-app
environment:
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
NEXTAUTH_URL: ${NEXTAUTH_URL}
BACKEND_URL: ${BACKEND_URL}
env_file:
- .env
depends_on:
postgres:
condition: service_healthy
tripwb-backend-app:
condition: service_healthy
caddy:
condition: service_started
# ports:
# - 9000:3000
networks:
- tripwb
tripwb-backend-app:
build:
context: backend/
# image:tripwb-backend
container_name: tripwb-backend-app
environment:
SECRET_KEY: ${SECRET_KEY}
DEBUG_MODE: ${DEBUG_MODE}
API_KEY: ${API_KEY}
DB_USER: ${DB_USER}
DB_HOST: ${DB_HOST}
DB_NAME: ${DB_NAME}
DB_PASSWORD: ${DB_PASSWORD}
DB_PORT: ${DB_PORT}
healthcheck:
test: ['CMD', 'curl', '-s', '-o', '-f', 'http://tripwb-backend-app:8000']
# interval: 5s
timeout: 5s
retries: 5
env_file:
- .env
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- tripwb-backend-app-uploads:/root/tripwb/uploads
# ports:
# - 8000:8000
networks:
- tripwb
# pgadmin-app:
# image: dpage/pgadmin4
# container_name: pgadmin-app
# environment:
# DB_PORT: ${DB_PORT}
# DB_HOST: ${DB_HOST}
# DB_NAME: ${DB_NAME}
# DB_PASSWORD: ${DB_PASSWORD}
# DB_USER: ${DB_USER}
# BOT_TOKEN: ${BOT_TOKEN}
# CHAT_ID: ${BOT_TOKEN}
# JWT_SECRET: ${BOT_TOKEN}
# NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
# PGADMIN_DEFAULT_EMAIL: timofey.syr17@gmail.com
# PGADMIN_DEFAULT_PASSWORD: passWoRd
# depends_on:
# postgres:
# condition: service_healthy
# ports:
# - 81:80
# networks:
# - tripwb
postgres:
image: postgres:alpine
restart: always
container_name: tripwb-db
env_file: backend/.env
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_DB: ${DB_NAME}
POSTGRES_PASSWORD: ${DB_PASSWORD}
healthcheck:
test: [CMD-SHELL, "sh -c 'pg_isready -U ${DB_USER} -d ${DB_NAME}'"]
interval: 10s
timeout: 5s
retries: 5
# ports:
# - 5432:5432
volumes:
- pg-data:/var/lib/postgresql/data
networks:
- tripwb
volumes:
pg-data:
caddy-config:
caddy-data:
tripwb-backend-app-uploads: