docker-compose.yml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. version: "3.9"
  2. # Docker for Ubuntu22.04 configuration
  3. # - mysql 8.0.23
  4. # - redis 6.2
  5. # -- 配置 -----------------------------
  6. # docker-compose down
  7. # docker-compose up -d
  8. # 1.首次启动前创建 (MySQL)
  9. # mkdir -p /opt/mysql/{data,config} /opt/mysql-files
  10. # chmod -R 777 /opt/mysql
  11. # 2.拷贝 my.cnf 配置文件
  12. # 第一次启动,不要带 my.cnf 映射,要先把 my.cnf 文件拷出来
  13. # docker cp mysql8:/etc/mysql/my.cnf /opt/mysql/config
  14. # chmod 644 /opt/mysql/config/my.cnf
  15. # (保证 my.cnf 必须是文件,不是目录)
  16. # 3.首次启动前创建(Redis)
  17. # mkdir -p /opt/redis/{data,logs}
  18. # chmod -R 777 /opt/redis
  19. # 4.首次启动前创建(Nginx)
  20. # mkdir -p /etc/nginx/conf.d
  21. # mkdir -p /etc/nginx/www/html
  22. # mkdir -p /etc/nginx/log
  23. # -------------------------------------
  24. services:
  25. # -- MySQL8.0 -----------------------
  26. mysql8:
  27. image: mysql:8.0.23
  28. container_name: mysql8
  29. restart: always
  30. environment:
  31. MYSQL_ROOT_PASSWORD: fiPxHGFJldDC
  32. ports:
  33. - "3306:3306"
  34. volumes:
  35. - /opt/mysql/data:/var/lib/mysql
  36. # - /opt/mysql/config/my.cnf:/etc/mysql/my.cnf:ro
  37. - /opt/mysql-files:/var/lib/mysql-files
  38. command:
  39. - mysqld
  40. - --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  41. # -- Redis6.2 -----------------------
  42. redis:
  43. image: redis:6.2 # 官方完整版,非 Alpine
  44. container_name: redis62
  45. restart: always
  46. ports:
  47. - "127.0.0.1:6388:6388" # 仅宿主机 127.0.0.1:6388 可访问
  48. volumes:
  49. - /opt/redis/data:/data # 数据持久化
  50. - /opt/redis/logs:/logs # 日志外挂
  51. environment:
  52. - TZ=UTC # UTC时区 (国内时区: Asia/Shanghai)
  53. command: >
  54. redis-server
  55. --port 6388
  56. --bind 127.0.0.1
  57. --requirepass 123456
  58. --appendonly yes
  59. --loglevel warning
  60. --logfile /logs/redis.log
  61. # -- Nginx --------------------------
  62. nginx:
  63. image: nginx:1.26.3
  64. container_name: nginx
  65. restart: always
  66. ports:
  67. - "80:80"
  68. - "443:443"
  69. volumes:
  70. - /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
  71. - /etc/nginx/conf.d:/etc/nginx/conf.d:ro
  72. - /etc/nginx/www/html:/usr/share/nginx/html:ro
  73. - /etc/nginx/log:/var/log/nginx
  74. environment:
  75. - TZ=UTC