ansible-role-minio/templates/minio-docker-compose.yml.j2

66 lines
1.6 KiB
Django/Jinja

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 %}