-1

OS: Debian Bullseye Docker Version: 20.10.5+dfsg1, build 55c4c88 Docker-Compose Version: 1.25.0, build unknown Docker-Py Version: 4.1.0 CPython Version: 3.9.2 OpenSSL Version: 1.1.1n 15 Mar 2022

Attempting to set up Netbox using Docker Compose and encountering the following error after attempting a docker-compose pull command.

ERROR: The Compose file './docker-compose.yml' is invalid because:
services.netbox-housekeeping.depends_on contains an invalid type, it should be an array
services.netbox-worker.depends_on contains an invalid type, it should be an array

Here is my docker-compose file:

version: "3.4"
services:
  netbox: &netbox
    image: netboxcommunity/netbox:${VERSION-v3.4-2.4.0}
    depends_on:
    - postgres
    - redis
    - redis-cache
    env_file: env/netbox.env
    user: "unit:root"
    healthcheck:
      start_period: 60s
      timeout: 3s
      interval: 15s
      test: "curl -f http://localhost:8080/api/ || exit 1"
    volumes:
    - ./configuration:/etc/netbox/config:z,ro
    - ./reports:/etc/netbox/reports:z,ro
    - ./scripts:/etc/netbox/scripts:z,ro
    - netbox-media-files:/opt/netbox/netbox/media:z
  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: postgres:15-alpine
    env_file: env/postgres.env
    volumes:
    - netbox-postgres-data:/var/lib/postgresql/data

  # redis
  redis:
    image: 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
    env_file: env/redis.env
    volumes:
    - netbox-redis-data:/data
  redis-cache:
    image: 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
    env_file: env/redis-cache.env
    volumes:
    - netbox-redis-cache-data:/data

volumes:
  netbox-media-files:
    driver: local
  netbox-postgres-data:
    driver: local
  netbox-redis-data:
    driver: local
  netbox-redis-cache-data:
    driver: local

I have been using the following article as a guide: https://computingforgeeks.com/how-to-run-netbox-ipam-tool-in-docker-containers/

J-B02
  • 1
  • 1

2 Answers2

0

I had the same problem on Ubuntu 20.04.5 . The solution for me was to remove the docker installation and install it using docker repository. https://docs.docker.com/engine/install/ubuntu/#set-up-the-repository

I think the error is due to old docker compose version.

Pim
  • 15
  • 1
  • 5
0

Old question, but it appears that you do not meet the minimum requirements for netbox-docker: https://github.com/netbox-community/netbox-docker#dependencies

  • The Docker version must be at least 20.10.10.
  • The containerd version must be at least 1.5.6.
  • The docker-compose version must be at least 1.28.0.

Hopefully this helps!

infinityzxx
  • 319
  • 1
  • 9