Add files via upload
This commit is contained in:
87
docker-compose.yml
Normal file
87
docker-compose.yml
Normal file
@@ -0,0 +1,87 @@
|
||||
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
|
||||
Reference in New Issue
Block a user