services:
    grafana:
        # FIXME image name with or without slash? Docker Hub or private registry? With or without *_BUILD_DATE? FIXME
        image: "grafana:${GRAFANA_VERSION}"
        container_name: "grafana-grafana-${CONTEXT}"
        networks:
            grafana-default:
        profiles: ["full", "grafana"]
        depends_on:
            nginx:
                condition: service_healthy
        ulimits:
            nproc: ${ULIMIT_NPROC:-65535}
            nofile:
                soft: ${ULIMIT_NPROC:-65535}
                hard: ${ULIMIT_NPROC:-65535}
        extends:
            file: common-settings.yaml
            service: common-settings
        ports:
            # - "8080:80"
        volumes:
            # When changing bind mount locations to real ones remember to
            # also update "Initial setup" section in README.md.
            # - /opt/docker-data/grafana-${CONTEXT}/grafana/data/db:/usr/lib/grafana
            # - /opt/docker-data/grafana-${CONTEXT}/grafana/data/logs:/var/log/grafana
            # - /opt/docker-data/grafana-${CONTEXT}/grafana/config:/etc/grafana
        environment:
            # GRAFANA_USER: ${GRAFANA_USER}
            # GRAFANA_PASSWORD: ${GRAFANA_PASSWORD}
    nginx:
        # FIXME image name with or without slash? Docker Hub or private registry? With or without *_BUILD_DATE? FIXME
        image: "nginx:${NGINX_VERSION}"
        container_name: "grafana-nginx-${CONTEXT}"
        networks:
            grafana-default:
        profiles: ["full", "nginx"]
        healthcheck:
            test: ["CMD", "fping", "--count=1", "${GRAFANA_VIP}", "--period=500", "--quiet"]
            interval: 3s
            timeout: 1s
            retries: 60
            start_period: 2s
        ulimits:
            nproc: ${ULIMIT_NPROC:-65535}
            nofile:
                soft: ${ULIMIT_NPROC:-65535}
                hard: ${ULIMIT_NPROC:-65535}
        extends:
            file: common-settings.yaml
            service: common-settings
        ports:
            # - "8080:80"
        volumes:
            # When changing bind mount locations to real ones remember to
            # also update "Initial setup" section in README.md.
            # - /opt/docker-data/grafana-${CONTEXT}/nginx/data/db:/usr/lib/nginx
            # - /opt/docker-data/grafana-${CONTEXT}/nginx/data/logs:/var/log/nginx
            # - /opt/docker-data/grafana-${CONTEXT}/nginx/config:/etc/nginx
        environment:
            # NGINX_USER: ${NGINX_USER}
            # NGINX_PASSWORD: ${NGINX_PASSWORD}
networks:
    grafana-default:
        name: grafana-${CONTEXT}
        driver: bridge
        driver_opts:
            com.docker.network.enable_ipv6: "false"
        ipam:
            driver: default
            config:
                - subnet: ${SUBNET}