services:
    ###> doctrine/doctrine-bundle ###
    database:
        image: postgis/postgis:${POSTGRES_VERSION:-16}-3.4-alpine
        environment:
            POSTGRES_DB: ${POSTGRES_DB:-app}
            # You should definitely change the password in production
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}
            POSTGRES_USER: ${POSTGRES_USER:-app}
        volumes:
            # - database_data:/var/lib/postgresql/data:rw
            # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
            - ./docker/db/data:/var/lib/postgresql/data:rw
    ###< doctrine/doctrine-bundle ###

    redis:
        image: redis
    relatorio:
        image: registry.gitlab.com/champs-libres/public/relatorio-tornado/app:latest

    sign-worker:
        image: h3m6q87t.gra7.container-registry.ovh.net/sign-pdf-worker/worker:latest
        environment:
            AMQP_URL: amqp://guest:guest@rabbitmq:5672/%2f/to_python_sign
            LOG_LEVEL: INFO
            PKCS12_PATH: /etc/sign-pdf/dummy.p12
            TIMESTAMP_URL: http://freetsa.org/tsr
            QUEUE_IN: to_python_sign
            EXCHANGE_OUT: signed_docs
            OUT_ROUTING_KEY: signed_doc
            TSA_CERT_CHAIN: /etc/sign-pdf/tsa/tsa-chain.pem
            TSA_CONFIG_PATH: /etc/sign-pdf/rootca.conf
            TSA_KEY_PASSWORD: "5678"
        volumes:
            - "./resources/dev-certificate/dummy.p12:/etc/sign-pdf/dummy.p12:ro"
            - "./resources/dev-certificate/rootca.conf:/etc/sign-pdf/rootca.conf:ro"
            - "./resources/dev-certificate/tsa:/etc/sign-pdf/tsa:ro"
            - "./resources/dev-certificate/tsa_serial:/var/lib/tsa/tsa_serial:rw"
        links:
            - rabbitmq
        depends_on:
            rabbitmq:
                condition: service_healthy

    rabbitmq:
        image: rabbitmq:3-management-alpine
        healthcheck:
            test: rabbitmq-diagnostics -q ping
            interval: 30s
            timeout: 30s
            retries: 3

volumes:
    ###> doctrine/doctrine-bundle ###
    database_data:
###< doctrine/doctrine-bundle ###
