docker-compose.yaml 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. version: '3'
  2. services:
  3. mysql:
  4. image: mysql:5.7
  5. container_name: mysql
  6. environment:
  7. # root 密码
  8. MYSQL_ROOT_PASSWORD: 123456789
  9. # 初始化数据库(后续的初始化sql会在这个库执行)
  10. MYSQL_DATABASE: 'campus_imaotai'
  11. TZ: Asia/Shanghai
  12. volumes:
  13. # 数据挂载
  14. - ./mysql/data/:/var/lib/mysql/
  15. # 配置挂载
  16. - ./mysql/conf/:/etc/mysql/conf.d/
  17. # 日志
  18. - ./mysql/logs:/logs
  19. # 直接导入数据库
  20. - ./mysql/campus_imaotai.sql:/docker-entrypoint-initdb.d/campus_imaotai.sql
  21. command: [
  22. 'mysqld',
  23. '--innodb-buffer-pool-size=80M',
  24. '--character-set-server=utf8mb4',
  25. '--collation-server=utf8mb4_unicode_ci',
  26. '--default-time-zone=+8:00',
  27. '--lower-case-table-names=1'
  28. ]
  29. #为了不影响宿主机使用mysql端口,所以使用campus-net网络,只允许内部网络访问
  30. networks:
  31. - campus-net
  32. redis:
  33. image: redis:6.2.12
  34. container_name: redis
  35. environment:
  36. # 时区上海
  37. TZ: Asia/Shanghai
  38. volumes:
  39. # 配置文件
  40. - ./redis/conf:/redis/config
  41. # 数据文件
  42. - ./redis/data/:/redis/data/
  43. command: "redis-server /redis/config/redis.conf"
  44. #为了不影响宿主机使用redis端口,所以使用campus-net网络,只允许内部网络访问
  45. networks:
  46. - campus-net
  47. nginx-web:
  48. image: nginx:1.23.4
  49. container_name: nginx-web
  50. environment:
  51. # 时区上海
  52. TZ: Asia/Shanghai
  53. #为了不影响宿主机使用nginx端口,所以启用端口映射
  54. ports:
  55. - "880:80"
  56. volumes:
  57. # 页面目录
  58. - ./nginx/html:/usr/share/nginx/html
  59. - ./nginx/cert:/etc/nginx/cert
  60. - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
  61. - ./nginx/log:/var/log/nginx
  62. networks:
  63. - campus-net # 连接内部网络访问后端
  64. - imaotai # 容器内也可以访问外部网络
  65. campus-server:
  66. image: oddfar/campus-imaotai
  67. container_name: campus-imaotai
  68. environment:
  69. TZ: Asia/Shanghai
  70. SERVER_PORT: 8160
  71. spring.config.additional-location: /home/campus/conf/application-prod.yml
  72. #为了不影响宿主机使用campus-server端口,所以启用端口映射
  73. ports:
  74. - "8160:8160"
  75. volumes:
  76. - ./server/conf:/home/campus/conf
  77. depends_on:
  78. - mysql
  79. - redis
  80. networks:
  81. - campus-net # 连接内部网络访问后端
  82. - imaotai # 容器内也可以访问外部网络
  83. networks:
  84. campus-net:
  85. driver: bridge
  86. imaotai:
  87. external: true # 确保已创建的外部网络