title: MAXUN date: 2024-12-21T16:21:53+08:00
version: '3.8'
services:
postgres:
image: postgres:13
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME}
# 指定postgres端口
command: -p ${DB_PORT:-5432}
ports:
- "${DB_PORT:-5432}:${DB_PORT:-5432}"
volumes:
# 指定postgres数据目录
- ./postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -p ${DB_PORT:-5432}"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:6
environment:
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
# 指定redis端口
command: redis-server --port ${REDIS_PORT:-6379}
ports:
- "${REDIS_PORT:-6379}:${REDIS_PORT:-6379}"
volumes:
# 指定redis数据目录
- ./redis_data:/data
minio:
image: minio/minio
environment:
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY}
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY}
# 指定minio端口
command: server /data --address :${MINIO_PORT:-9000} --console-address :${MINIO_CONSOLE_PORT:-9001}
ports:
- "${MINIO_PORT:-9000}:${MINIO_PORT:-9000}"
- "${MINIO_CONSOLE_PORT:-9001}:${MINIO_CONSOLE_PORT:-9001}"
volumes:
# 指定minio数据目录
- ./minio_data:/data
backend:
#build:
#context: .
#dockerfile: server/Dockerfile
image: getmaxun/maxun-backend:v0.0.7
ports:
- "${BACKEND_PORT:-8080}:${BACKEND_PORT:-8080}"
env_file: .env
environment:
BACKEND_URL: ${BACKEND_URL}
# 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
shm_size: '2gb' # Increase shared memory size for Chromium
mem_limit: 2g # Set a 2GB memory limit
depends_on:
- postgres
- redis
- minio
volumes:
# 指定通信目录(用于容器内进程间通信,目录名可自定义)
- ./dbus:/var/run/dbus
frontend:
#build:
#context: .
#dockerfile: Dockerfile
image: getmaxun/maxun-frontend:v0.0.3
ports:
- "${FRONTEND_PORT:-5173}:${FRONTEND_PORT:-5173}"
env_file: .env
environment:
PUBLIC_URL: ${PUBLIC_URL}
BACKEND_URL: ${BACKEND_URL}
depends_on:
- backend
volumes:
postgres_data:
minio_data:
redis_data:
# App Setup
NODE_ENV=production
JWT_SECRET=a9Z$$kLq7^f03GzNw!bP9dH4xV6sT2yXl3O8vR@uYq3
DB_NAME=maxun
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=postgres
DB_PORT=5435
ENCRYPTION_KEY=f4d5e6a7b8c9d0e1f23456789abcdef01234567890abcdef123456789abcdef0
# MinIO配置
MINIO_ENDPOINT=minio
MINIO_PORT=9005
MINIO_CONSOLE_PORT=9006
MINIO_ACCESS_KEY=zhensolid
MINIO_SECRET_KEY=19841122Cy!
# Redis配置
REDIS_HOST=redis
REDIS_PORT=6380
# 后端和前端URL配置
BACKEND_PORT=8081
FRONTEND_PORT=5174
BACKEND_URL=http://localhost:8081
PUBLIC_URL=http://localhost:5174
VITE_BACKEND_URL=http://localhost:8081
VITE_PUBLIC_URL=http://localhost:5174
# 遥测设置
MAXUN_TELEMETRY=true