diff --git a/Dockerfile b/Dockerfile index 005d919..d87c7d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,11 +62,12 @@ RUN apk add --no-cache \ libevent \ libffi \ libjpeg-turbo \ - openssl \ libxslt \ + openssl \ postgresql-libs \ - python3 \ py3-pip \ + python3 \ + tini \ unit \ unit-python3 @@ -82,6 +83,7 @@ COPY ${NETBOX_PATH} /opt/netbox COPY docker/configuration.docker.py /opt/netbox/netbox/netbox/configuration.py COPY docker/docker-entrypoint.sh /opt/netbox/docker-entrypoint.sh +COPY docker/housekeeping.sh /opt/netbox/housekeeping.sh COPY docker/launch-netbox.sh /opt/netbox/launch-netbox.sh COPY startup_scripts/ /opt/netbox/startup_scripts/ COPY initializers/ /opt/netbox/initializers/ diff --git a/docker-compose.yml b/docker-compose.yml index 09d52a7..f38665b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,11 +20,24 @@ services: <<: *netbox depends_on: - redis + - postgres entrypoint: + - "/sbin/tini" + - "--" + command: - /opt/netbox/venv/bin/python - /opt/netbox/netbox/manage.py - command: - rqworker + netbox-housekeeping: + <<: *netbox + depends_on: + - redis + - postgres + entrypoint: + - "/sbin/tini" + - "--" + command: + - /opt/netbox/housekeeping.sh # postgres postgres: diff --git a/docker/housekeeping.sh b/docker/housekeeping.sh new file mode 100755 index 0000000..a098087 --- /dev/null +++ b/docker/housekeeping.sh @@ -0,0 +1,8 @@ +#!/bin/bash +SECONDS=${HOUSEKEEPING_INTERVAL:=86400} +echo "Interval set to ${SECONDS} seconds" +while true; do + date + /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py housekeeping + sleep ${SECONDS}s +done diff --git a/env/netbox.env b/env/netbox.env index 1f6f896..1300873 100644 --- a/env/netbox.env +++ b/env/netbox.env @@ -14,6 +14,7 @@ EMAIL_USERNAME=netbox # EMAIL_USE_SSL and EMAIL_USE_TLS are mutually exclusive, i.e. they can't both be `true`! EMAIL_USE_SSL=false EMAIL_USE_TLS=false +HOUSEKEEPING_INTERVAL=86400 MAX_PAGE_SIZE=1000 MEDIA_ROOT=/opt/netbox/netbox/media METRICS_ENABLED=false