Files
superlink/deploy/docker-compose.yml
T

65 lines
1.8 KiB
YAML

# SuperLink 部署编排(对齐服务器 license_server 既有 compose 风格)
# 服务:db(MySQL8) / app(PHP-FPM) / web(nginx)
# 使用:cp .env.example .env 并填好口令;docker compose up -d --build
# 访问:http://<服务器IP>:8081/
name: mysuperlink
services:
db:
image: mysql:8.0
restart: unless-stopped
env_file: .env
environment:
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASS}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-authentication-plugin=mysql_native_password
volumes:
- db_data:/var/lib/mysql
- ./mysql/initdb/01_schema_base.sh:/docker-entrypoint-initdb.d/01_schema_base.sh:ro
- .:/repo # 挂载部署目录,init 脚本 source 仓库 sql
- ../../sql:/repo/sql:ro # 仓库 sql 目录(基准 + 字典 + 迁移)
- ../../config:/repo/config:ro
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -u$$MYSQL_USER -p$$MYSQL_PASSWORD --silent"]
interval: 5s
timeout: 5s
retries: 30
start_period: 30s
app:
build: ./php
restart: unless-stopped
env_file: .env
environment:
DB_HOST: db
DB_PORT: "3306"
DB_NAME: ${DB_NAME}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_CHARSET: utf8mb4
volumes:
- ../../:/var/www/html
depends_on:
db:
condition: service_healthy
web:
image: nginx:1.25-alpine
restart: unless-stopped
ports:
- "8081:80"
environment:
- TZ=Asia/Shanghai
volumes:
- ../../:/var/www/html:ro
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- app
volumes:
db_data: