Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Forked from DIGIT-C4 / Netbox Plugins
131 commits behind, 3 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
docker-compose.yml 2.42 KiB
version: '3.4'
services:
    netbox: &netbox
        image: code.europa.eu:4567/digit-c4/netbox-plugins:latest
        depends_on:
            - postgres
            - redis
            - redis-cache
        user: 'unit:root'
        healthcheck:
            start_period: 60s
            timeout: 3s
            interval: 15s
            test: "curl -f http://localhost:8080/api/ || exit 1"
        volumes:
            - netbox-media-files:/opt/netbox/netbox/media:z,rw
            - netbox-reports-files:/opt/netbox/netbox/reports:z,rw
            - netbox-scripts-files:/opt/netbox/netbox/scripts:z,rw
    netbox-worker:
        <<: *netbox
        depends_on:
            netbox:
                condition: service_healthy
        command:
            - /opt/netbox/venv/bin/python
            - /opt/netbox/netbox/manage.py
            - rqworker
        healthcheck:
            start_period: 20s
            timeout: 3s
            interval: 15s
            test: "ps -aux | grep -v grep | grep -q rqworker || exit 1"
    netbox-housekeeping:
        <<: *netbox
        depends_on:
            netbox:
                condition: service_healthy
        command:
            - /opt/netbox/housekeeping.sh
        healthcheck:
            start_period: 20s
            timeout: 3s
            interval: 15s
            test: "ps -aux | grep -v grep | grep -q housekeeping || exit 1"

    # postgres
    postgres:
        image: docker.io/postgres:15-alpine
        volumes:
            - netbox-postgres-data:/var/lib/postgresql/data

    # redis
    redis:
        image: docker.io/redis:7-alpine
        command:
            - sh
            - -c # this is to evaluate the $REDIS_PASSWORD from the env
            - redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
        volumes:
            - netbox-redis-data:/data
    redis-cache:
        image: docker.io/redis:7-alpine
        command:
            - sh
            - -c # this is to evaluate the $REDIS_PASSWORD from the env
            - redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
        volumes:
            - netbox-redis-cache-data:/data

volumes: