docker-compose.yml 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. services:
  2. mariadb:
  3. image: mariadb:10.4
  4. container_name: mariadb_simple
  5. restart: unless-stopped
  6. ports:
  7. - "0.0.0.0:3306:3306"
  8. environment:
  9. - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password
  10. volumes:
  11. - mariadb_simple_data:/var/lib/mysql
  12. - /etc/localtime:/etc/localtime
  13. - /var/backups/mysql:/backups
  14. secrets:
  15. - mysql_root_password
  16. networks:
  17. - default
  18. - db-migration
  19. command: >
  20. --character-set-server=utf8mb4
  21. --collation-server=utf8mb4_unicode_ci
  22. --max-connections=200
  23. --innodb-buffer-pool-size=256M
  24. --max-allowed-packet=16M
  25. --sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  26. --slow-query-log=1
  27. --long-query-time=5
  28. --skip-name-resolve
  29. --innodb-rollback-on-timeout=ON
  30. --lock-wait-timeout=60
  31. healthcheck:
  32. test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
  33. interval: 10s
  34. timeout: 5s
  35. retries: 5
  36. logging:
  37. driver: "json-file"
  38. options:
  39. max-size: "10m"
  40. max-file: "3"
  41. volumes:
  42. mariadb_simple_data:
  43. name: mariadb_simple_data
  44. secrets:
  45. mysql_root_password:
  46. file: .secrets/mysql_root_password
  47. networks:
  48. default:
  49. name: mariadb_simple_default
  50. db-migration:
  51. external: true