version: '3.7' networks: {{ minio_docker_network }}: {% if minio_behind_haproxy %} haproxy-public: external: true {% endif %} secrets: minio_secret_key: external: true minio_access_key: external: true services: {% for i in minio_server_instances %} {{ minio_docker_service_server_name }}{{ i }}: hostname: {{ minio_docker_service_server_name }}{{ i }} image: {{ minio_docker_server_image }} command: server --console-address ":9001" http://{{ minio_docker_service_server_name }}{1...8}/{{ minio_data_prefix }}{3...4} {% if not minio_docker_swarm_dnsrr %} ports: - 9000 {% endif %} networks: - {{ minio_docker_network }} {% if minio_behind_haproxy %} - haproxy-public {% endif %} environment: MINIO_ROOT_USER_FILE: {{minio_access_key}} MINIO_ROOT_PASSWORD_FILE: {{minio_secret_key}} secrets: - minio_access_key - minio_secret_key healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 5 volumes: {% for vol in minio_disk_volumes %} - {{ minio_volume_prefix }}/{{ vol }}:{{ minio_data_prefix }}{{ vol }} {% endfor %} deploy: mode: replicated replicas: 1 {% if minio_docker_swarm_dnsrr %} endpoint_mode: dnsrr {% endif %} placement: constraints: - node.role == worker - node.labels.minio == minio{{ i }} restart_policy: condition: on-failure delay: 5s max_attempts: 20 window: 120s logging: driver: 'journald' {% endfor %}