85 lines
2.0 KiB
YAML
85 lines
2.0 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:13
|
|
environment:
|
|
POSTGRES_USER: ${DB_USER}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
POSTGRES_DB: ${DB_NAME}
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:6
|
|
environment:
|
|
REDIS_HOST: ${REDIS_HOST}
|
|
REDIS_PORT: ${REDIS_PORT}
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
minio:
|
|
image: minio/minio
|
|
environment:
|
|
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY}
|
|
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY}
|
|
command: server /data
|
|
ports:
|
|
- "9000:9000"
|
|
volumes:
|
|
- minio_data:/data
|
|
|
|
backend:
|
|
build:
|
|
context: .
|
|
dockerfile: server/Dockerfile
|
|
ports:
|
|
- "8080:8080"
|
|
env_file: .env
|
|
environment:
|
|
# to ensure Playwright works in Docker
|
|
PLAYWRIGHT_BROWSERS_PATH: /ms-playwright
|
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 0
|
|
# DEBUG: pw:api
|
|
# PWDEBUG: 1 # Enables debugging
|
|
CHROMIUM_FLAGS: '--disable-gpu --no-sandbox --headless=new'
|
|
security_opt:
|
|
- seccomp=unconfined # This might help with browser sandbox issues
|
|
# Increase shared memory size for Chromium
|
|
shm_size: '2gb'
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
- minio
|
|
volumes:
|
|
- ./server:/app/server # Mount server source code for hot reloading
|
|
- ./maxun-core:/app/maxun-core # Mount maxun-core for any shared code updates
|
|
- /var/run/dbus:/var/run/dbus
|
|
|
|
frontend:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "5173:5173"
|
|
env_file: .env
|
|
volumes:
|
|
- ./:/app # Mount entire frontend app directory for hot reloading
|
|
- /app/node_modules # Anonymous volume to prevent overwriting node_modules
|
|
depends_on:
|
|
- backend
|
|
|
|
volumes:
|
|
postgres_data:
|
|
minio_data:
|
|
redis_data:
|