docker-compose.local.yml 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. services:
  2. im_mysql:
  3. image: mysql:8.0
  4. container_name: im_mysql
  5. environment:
  6. MYSQL_ROOT_PASSWORD: root123
  7. MYSQL_DATABASE: spider
  8. MYSQL_CHARACTER_SET_SERVER: utf8mb4
  9. MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
  10. ports:
  11. - "3307:3306"
  12. volumes:
  13. - mysql_data:/var/lib/mysql
  14. healthcheck:
  15. test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-proot123"]
  16. interval: 10s
  17. timeout: 5s
  18. retries: 10
  19. start_period: 300s
  20. networks:
  21. - chat_im_network
  22. im_redis:
  23. image: redis:7-alpine
  24. container_name: im_redis
  25. ports:
  26. - "6379:6379"
  27. volumes:
  28. - redis_data:/data
  29. healthcheck:
  30. test: ["CMD", "redis-cli", "ping"]
  31. interval: 10s
  32. timeout: 3s
  33. retries: 5
  34. networks:
  35. - chat_im_network
  36. api:
  37. build:
  38. context: ..
  39. dockerfile: deploy/Dockerfile.api
  40. container_name: spider_api
  41. ports:
  42. - "8200:8080"
  43. volumes:
  44. - ../configs:/app/configs
  45. - ../sessions:/app/sessions
  46. environment:
  47. - GIN_MODE=release
  48. - TG_SECRET_KEY=${TG_SECRET_KEY:-d9RkIHw7wLaa5Qx+B7/QOw5K6+bW67Ife4UK91h4Z2Q=}
  49. depends_on:
  50. im_mysql:
  51. condition: service_healthy
  52. im_redis:
  53. condition: service_healthy
  54. restart: unless-stopped
  55. healthcheck:
  56. test: ["CMD", "wget", "-q", "-O-", "http://localhost:8080/ping"]
  57. interval: 15s
  58. timeout: 5s
  59. retries: 3
  60. start_period: 120s
  61. networks:
  62. - chat_im_network
  63. web:
  64. build:
  65. context: ..
  66. dockerfile: deploy/Dockerfile.web
  67. container_name: spider_web
  68. ports:
  69. - "8300:80"
  70. depends_on:
  71. api:
  72. condition: service_healthy
  73. restart: unless-stopped
  74. healthcheck:
  75. test: ["CMD", "curl", "-sf", "http://localhost:80/"]
  76. interval: 30s
  77. timeout: 5s
  78. retries: 3
  79. networks:
  80. - chat_im_network
  81. networks:
  82. chat_im_network:
  83. driver: bridge
  84. volumes:
  85. mysql_data:
  86. redis_data: