docker-compose-dev.yaml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. version: "3"
  2. # 声明一个名为network的networks,subnet为network的子网地址,默认网关是177.7.0.1
  3. networks:
  4. network:
  5. ipam:
  6. driver: default
  7. config:
  8. - subnet: '177.7.0.0/16'
  9. # 设置mysql,redis持久化保存
  10. volumes:
  11. mysql:
  12. redis:
  13. services:
  14. web:
  15. image: node:16
  16. container_name: gva-web
  17. hostname: gva-web #可以通过容器名访问
  18. restart: always
  19. ports:
  20. - '8080:8080'
  21. depends_on:
  22. - server
  23. working_dir: /web # 如果docker 设置了workdir 则此处不需要设置
  24. #若网络不太好,请自行换源,如下
  25. #command: bash -c "yarn config set registry https://registry.npm.taobao.org --global && yarn install && yarn serve"
  26. command: bash -c "yarn install && yarn serve"
  27. volumes:
  28. - ../../web:/web
  29. networks:
  30. network:
  31. ipv4_address: 177.7.0.11
  32. server:
  33. image: golang:1.18
  34. container_name: gva-server
  35. hostname: gva-server
  36. restart: always
  37. ports:
  38. - '8888:8888'
  39. depends_on:
  40. mysql:
  41. condition: service_healthy
  42. redis:
  43. condition: service_healthy
  44. volumes:
  45. - ../../server:/server
  46. working_dir: /server # 如果docker 设置了workdir 则此处不需要设置
  47. command: bash -c "go env -w GOPROXY=https://goproxy.cn,direct && go mod tidy && go run main.go"
  48. links:
  49. - mysql
  50. - redis
  51. networks:
  52. network:
  53. ipv4_address: 177.7.0.12
  54. mysql:
  55. image: mysql:8.0.21 # 如果您是 arm64 架构:如 MacOS 的 M1,请修改镜像为 image: mysql/mysql-server:8.0.21
  56. container_name: gva-mysql
  57. hostname: gva-mysql
  58. command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
  59. restart: always
  60. ports:
  61. - "13306:3306" # host物理直接映射端口为13306
  62. environment:
  63. #MYSQL_ROOT_PASSWORD: 'Aa@6447985' # root管理员用户密码
  64. MYSQL_DATABASE: 'qmPlus' # 初始化启动时要创建的数据库的名称
  65. MYSQL_USER: 'gva'
  66. MYSQL_PASSWORD: 'Aa@6447985'
  67. healthcheck:
  68. test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "gva", "-pAa@6447985"]
  69. interval: 10s
  70. timeout: 5s
  71. retries: 3
  72. volumes:
  73. - mysql:/var/lib/mysql
  74. networks:
  75. network:
  76. ipv4_address: 177.7.0.13
  77. redis:
  78. image: redis:6.0.6
  79. container_name: gva-redis # 容器名
  80. hostname: gva-redis
  81. restart: always
  82. ports:
  83. - '16379:6379'
  84. healthcheck:
  85. test: ["CMD-SHELL", "redis-cli ping | grep PONG || exit 1"]
  86. interval: 10s
  87. timeout: 5s
  88. retries: 3
  89. volumes:
  90. - redis:/data
  91. networks:
  92. network:
  93. ipv4_address: 177.7.0.14