Newer
Older
netbox-docker / docker-compose.test.yml
@Christian Mäder Christian Mäder on 25 May 2024 1 KB Fix endpoint
services:
  netbox: &netbox
    image: ${IMAGE-docker.io/netboxcommunity/netbox:latest}
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
      redis-cache:
        condition: service_healthy
    env_file: env/netbox.env
    user: 'unit:root'
    volumes:
    - ./test-configuration/test_config.py:/etc/netbox/config/test_config.py:z,ro
    healthcheck:
      test: curl -f http://localhost:8080/login/ || exit 1
      start_period: ${NETBOX_START_PERIOD-120s}
      timeout: 3s
      interval: 15s
  netbox-worker:
    <<: *netbox
    command:
    - /opt/netbox/venv/bin/python
    - /opt/netbox/netbox/manage.py
    - rqworker
    healthcheck:
      test: ps -aux | grep -v grep | grep -q rqworker || exit 1
      start_period: 40s
      timeout: 3s
      interval: 15s
  netbox-housekeeping:
    <<: *netbox
    command:
    - /opt/netbox/housekeeping.sh
    healthcheck:
      test: ps -aux | grep -v grep | grep -q housekeeping || exit 1
      start_period: 40s
      timeout: 3s
      interval: 15s

  postgres:
    image: docker.io/postgres:16-alpine
    env_file: env/postgres.env
    healthcheck:
      test: pg_isready -q -t 2 -d $$POSTGRES_DB -U $$POSTGRES_USER ## $$ because of docker-compose
      start_period: 20s
      interval: 1s
      timeout: 5s
      retries: 5

  redis: &redis
    image: docker.io/valkey/valkey:7.2-alpine
    command:
    - sh
    - -c # this is to evaluate the $REDIS_PASSWORD from the env
    - valkey-server --save "" --appendonly no --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
    env_file: env/redis.env
    healthcheck:
      test: "[ $$(valkey-cli --pass \"$${REDIS_PASSWORD}\" ping) = 'PONG' ]"
      start_period: 5s
      timeout: 3s
      interval: 1s
      retries: 5
  redis-cache:
    <<: *redis
    env_file: env/redis-cache.env

volumes:
  netbox-media-files:
    driver: local