- 在 docker-compose.yml 中为 crm-backend 服务添加 image 标签,以便在服务器上直接使用预构建的镜像 - 新增部署说明文档,详细描述了前端静态文件部署、后端镜像构建与导入、服务器容器更新以及升级回滚流程 - 文档提供了完整的目录结构、命令示例和注意事项,便于生产环境运维
93 lines
2.3 KiB
YAML
93 lines
2.3 KiB
YAML
version: '3.8'
|
||
|
||
networks:
|
||
crm_network:
|
||
driver: bridge
|
||
ipam:
|
||
config:
|
||
- subnet: 192.168.255.0/24
|
||
|
||
services:
|
||
# MySQL 数据库
|
||
crm-mysql:
|
||
image: mysql:8
|
||
container_name: crm-mysql
|
||
restart: always
|
||
environment:
|
||
MYSQL_ROOT_PASSWORD: MySQL123s56
|
||
MYSQL_DATABASE: crm_db
|
||
TZ: Asia/Shanghai
|
||
command: [
|
||
'--character-set-server=utf8mb4',
|
||
'--collation-server=utf8mb4_unicode_ci',
|
||
]
|
||
ports:
|
||
- "39948:3306"
|
||
volumes:
|
||
- ./mysql/data:/var/lib/mysql
|
||
- ./sql:/docker-entrypoint-initdb.d:ro
|
||
networks:
|
||
- crm_network
|
||
healthcheck:
|
||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pMySQL123s56"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 5
|
||
start_period: 30s
|
||
|
||
# 后端服务
|
||
crm-backend:
|
||
image: by-crm/crm-backend:2026.01.27
|
||
build:
|
||
context: ./backend
|
||
dockerfile: Dockerfile
|
||
container_name: crm-backend
|
||
restart: always
|
||
depends_on:
|
||
crm-mysql:
|
||
condition: service_healthy
|
||
environment:
|
||
# 数据库配置
|
||
SPRING_DATASOURCE_URL: jdbc:mysql://crm-mysql:3306/crm_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
|
||
SPRING_DATASOURCE_USERNAME: root
|
||
SPRING_DATASOURCE_PASSWORD: MySQL123s56
|
||
|
||
# JWT 配置
|
||
JWT_SECRET: by-crm-jwt-secret-key-2024-hs512-requires-at-least-64-bytes-for-secure-signing-please-change-in-production-environment
|
||
JWT_EXPIRATION: 86400000
|
||
|
||
# 应用配置
|
||
SERVER_PORT: 8080
|
||
TZ: Asia/Shanghai
|
||
ports:
|
||
- "9948:8080"
|
||
volumes:
|
||
- ./backend/logs:/app/logs
|
||
networks:
|
||
- crm_network
|
||
healthcheck:
|
||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8080/actuator/health"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 3
|
||
start_period: 60s
|
||
|
||
# # 前端服务(Nginx)
|
||
# crm-frontend:
|
||
# build:
|
||
# context: ./frontend
|
||
# dockerfile: Dockerfile
|
||
# container_name: crm-frontend
|
||
# restart: always
|
||
# depends_on:
|
||
# - crm-backend
|
||
# ports:
|
||
# - "9948:80"
|
||
# networks:
|
||
# - crm_network
|
||
# healthcheck:
|
||
# test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:80"]
|
||
# interval: 30s
|
||
# timeout: 5s
|
||
# retries: 3
|