docker-compose.yml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. version: '3.8'
  2. services:
  3. # MySQL 数据库服务
  4. mysql:
  5. image: mysql:8.0
  6. container_name: license-admin-mysql
  7. environment:
  8. MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-password}
  9. MYSQL_DATABASE: ${DB_NAME:-license_admin}
  10. MYSQL_USER: ${DB_USER:-license_user}
  11. MYSQL_PASSWORD: ${DB_PASSWORD:-password}
  12. ports:
  13. - "${DB_PORT:-3306}:3306"
  14. volumes:
  15. # 持久化 MySQL 数据
  16. - mysql_data:/var/lib/mysql
  17. # 初始化 SQL 脚本
  18. - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
  19. restart: unless-stopped
  20. command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  21. healthcheck:
  22. test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
  23. interval: 10s
  24. timeout: 5s
  25. retries: 5
  26. networks:
  27. - license-admin-network
  28. # License Admin 应用服务
  29. license-admin:
  30. build:
  31. context: .
  32. dockerfile: Dockerfile
  33. platforms:
  34. - linux/amd64
  35. image: license-admin:latest
  36. container_name: license-admin
  37. ports:
  38. - "8080:8080"
  39. environment:
  40. # 认证 Token,生产环境请修改
  41. - AUTH_TOKEN=${AUTH_TOKEN:-admin-token-123456}
  42. # 端口配置
  43. - PORT=8080
  44. # MySQL 数据库配置
  45. - DB_HOST=mysql
  46. - DB_PORT=3306
  47. - DB_USER=${DB_USER:-root}
  48. - DB_PASSWORD=${DB_PASSWORD:-password}
  49. - DB_NAME=${DB_NAME:-license_admin}
  50. depends_on:
  51. mysql:
  52. condition: service_healthy
  53. restart: unless-stopped
  54. healthcheck:
  55. test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
  56. interval: 30s
  57. timeout: 3s
  58. retries: 3
  59. start_period: 10s
  60. networks:
  61. - license-admin-network
  62. volumes:
  63. mysql_data:
  64. driver: local
  65. networks:
  66. license-admin-network:
  67. driver: bridge