Files
arboris-novel/docker-compose.yml
2025-10-11 17:40:20 +08:00

88 lines
3.0 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

services:
app:
image: tiechui251/arboris-app:latest
container_name: arboris-app
ports:
- "${APP_PORT:-80}:80"
environment:
SECRET_KEY: ${SECRET_KEY:?请设置SECRET_KEY}
ENVIRONMENT: ${ENVIRONMENT:-production}
DEBUG: ${DEBUG:-false}
MYSQL_HOST: ${MYSQL_HOST:-db}
MYSQL_PORT: ${MYSQL_PORT:-3306}
MYSQL_USER: ${MYSQL_USER:-arboris}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:?请设置数据库密码}
MYSQL_DATABASE: ${MYSQL_DATABASE:-arboris}
ADMIN_DEFAULT_USERNAME: ${ADMIN_DEFAULT_USERNAME:-admin}
ADMIN_DEFAULT_PASSWORD: ${ADMIN_DEFAULT_PASSWORD:-ChangeMe123!}
ADMIN_DEFAULT_EMAIL: ${ADMIN_DEFAULT_EMAIL:-admin@example.com}
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENAI_API_BASE_URL: ${OPENAI_API_BASE_URL:-https://api.openai.com/v1}
OPENAI_MODEL_NAME: ${OPENAI_MODEL_NAME:-gpt-3.5-turbo}
WRITER_CHAPTER_VERSION_COUNT: ${WRITER_CHAPTER_VERSION_COUNT:-2}
SMTP_SERVER: ${SMTP_SERVER:-smtp.example.com}
SMTP_PORT: ${SMTP_PORT:-465}
SMTP_USERNAME: ${SMTP_USERNAME:-no-reply@example.com}
SMTP_PASSWORD: ${SMTP_PASSWORD}
EMAIL_FROM: ${EMAIL_FROM:-小说生成器}
ALLOW_USER_REGISTRATION: ${ALLOW_USER_REGISTRATION:-true}
ENABLE_LINUXDO_LOGIN: ${ENABLE_LINUXDO_LOGIN:-false}
LINUXDO_CLIENT_ID: ${LINUXDO_CLIENT_ID}
LINUXDO_CLIENT_SECRET: ${LINUXDO_CLIENT_SECRET}
LINUXDO_REDIRECT_URI: ${LINUXDO_REDIRECT_URI}
LINUXDO_AUTH_URL: ${LINUXDO_AUTH_URL:-https://connect.linux.do/oauth2/authorize}
LINUXDO_TOKEN_URL: ${LINUXDO_TOKEN_URL:-https://connect.linux.do/oauth2/token}
LINUXDO_USER_INFO_URL: ${LINUXDO_USER_INFO_URL:-https://connect.linux.do/api/user}
restart: unless-stopped
networks:
- app-network
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 90s
# MySQL 数据库服务(可选,使用 profile
db:
image: mysql:8.0
container_name: arboris-db
profiles:
- with-db
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-ChangeMe_RootPassword123}
MYSQL_DATABASE: ${MYSQL_DATABASE:-arboris}
MYSQL_USER: ${MYSQL_USER:-arboris}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-ChangeMe_Password123}
TZ: Asia/Shanghai
volumes:
- mysql-data:/var/lib/mysql
- ./backend/db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
restart: unless-stopped
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --max_connections=1000
volumes:
mysql-data:
driver: local
networks:
app-network:
driver: bridge