Merge pull request #571 from tobiasge/house
Added container for Netbox housekeeping command
This commit is contained in:
commit
8703749292
10
Dockerfile
10
Dockerfile
@ -62,11 +62,12 @@ RUN apk add --no-cache \
|
|||||||
libevent \
|
libevent \
|
||||||
libffi \
|
libffi \
|
||||||
libjpeg-turbo \
|
libjpeg-turbo \
|
||||||
openssl \
|
|
||||||
libxslt \
|
libxslt \
|
||||||
|
openssl \
|
||||||
postgresql-libs \
|
postgresql-libs \
|
||||||
python3 \
|
|
||||||
py3-pip \
|
py3-pip \
|
||||||
|
python3 \
|
||||||
|
tini \
|
||||||
unit \
|
unit \
|
||||||
unit-python3
|
unit-python3
|
||||||
|
|
||||||
@ -82,6 +83,7 @@ COPY ${NETBOX_PATH} /opt/netbox
|
|||||||
|
|
||||||
COPY docker/configuration.docker.py /opt/netbox/netbox/netbox/configuration.py
|
COPY docker/configuration.docker.py /opt/netbox/netbox/netbox/configuration.py
|
||||||
COPY docker/docker-entrypoint.sh /opt/netbox/docker-entrypoint.sh
|
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 docker/launch-netbox.sh /opt/netbox/launch-netbox.sh
|
||||||
COPY startup_scripts/ /opt/netbox/startup_scripts/
|
COPY startup_scripts/ /opt/netbox/startup_scripts/
|
||||||
COPY initializers/ /opt/netbox/initializers/
|
COPY initializers/ /opt/netbox/initializers/
|
||||||
@ -98,9 +100,9 @@ RUN mkdir -p static /opt/unit/state/ /opt/unit/tmp/ \
|
|||||||
--config-file /opt/netbox/mkdocs.yml --site-dir /opt/netbox/netbox/project-static/docs/ \
|
--config-file /opt/netbox/mkdocs.yml --site-dir /opt/netbox/netbox/project-static/docs/ \
|
||||||
&& SECRET_KEY="dummy" /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py collectstatic --no-input
|
&& SECRET_KEY="dummy" /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py collectstatic --no-input
|
||||||
|
|
||||||
ENTRYPOINT [ "/opt/netbox/docker-entrypoint.sh" ]
|
ENTRYPOINT [ "/sbin/tini", "--" ]
|
||||||
|
|
||||||
CMD [ "/opt/netbox/launch-netbox.sh" ]
|
CMD [ "/opt/netbox/docker-entrypoint.sh", "/opt/netbox/launch-netbox.sh" ]
|
||||||
|
|
||||||
LABEL ORIGINAL_TAG="" \
|
LABEL ORIGINAL_TAG="" \
|
||||||
NETBOX_GIT_BRANCH="" \
|
NETBOX_GIT_BRANCH="" \
|
||||||
|
@ -17,8 +17,6 @@ services:
|
|||||||
- ./reports:/etc/netbox/reports:z,ro
|
- ./reports:/etc/netbox/reports:z,ro
|
||||||
- ./scripts:/etc/netbox/scripts:z,ro
|
- ./scripts:/etc/netbox/scripts:z,ro
|
||||||
- netbox-media-files:/opt/netbox/netbox/media:z
|
- netbox-media-files:/opt/netbox/netbox/media:z
|
||||||
ports:
|
|
||||||
- 8080
|
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:13-alpine
|
image: postgres:13-alpine
|
||||||
env_file: env/postgres.env
|
env_file: env/postgres.env
|
||||||
|
@ -20,11 +20,18 @@ services:
|
|||||||
<<: *netbox
|
<<: *netbox
|
||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- redis
|
||||||
entrypoint:
|
- postgres
|
||||||
|
command:
|
||||||
- /opt/netbox/venv/bin/python
|
- /opt/netbox/venv/bin/python
|
||||||
- /opt/netbox/netbox/manage.py
|
- /opt/netbox/netbox/manage.py
|
||||||
command:
|
|
||||||
- rqworker
|
- rqworker
|
||||||
|
netbox-housekeeping:
|
||||||
|
<<: *netbox
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- postgres
|
||||||
|
command:
|
||||||
|
- /opt/netbox/housekeeping.sh
|
||||||
|
|
||||||
# postgres
|
# postgres
|
||||||
postgres:
|
postgres:
|
||||||
|
8
docker/housekeeping.sh
Executable file
8
docker/housekeeping.sh
Executable file
@ -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
|
1
env/netbox.env
vendored
1
env/netbox.env
vendored
@ -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 and EMAIL_USE_TLS are mutually exclusive, i.e. they can't both be `true`!
|
||||||
EMAIL_USE_SSL=false
|
EMAIL_USE_SSL=false
|
||||||
EMAIL_USE_TLS=false
|
EMAIL_USE_TLS=false
|
||||||
|
HOUSEKEEPING_INTERVAL=86400
|
||||||
MAX_PAGE_SIZE=1000
|
MAX_PAGE_SIZE=1000
|
||||||
MEDIA_ROOT=/opt/netbox/netbox/media
|
MEDIA_ROOT=/opt/netbox/netbox/media
|
||||||
METRICS_ENABLED=false
|
METRICS_ENABLED=false
|
||||||
|
4
test.sh
4
test.sh
@ -56,13 +56,13 @@ test_setup() {
|
|||||||
|
|
||||||
test_netbox_unit_tests() {
|
test_netbox_unit_tests() {
|
||||||
echo "⏱ Running NetBox Unit Tests"
|
echo "⏱ Running NetBox Unit Tests"
|
||||||
SKIP_STARTUP_SCRIPTS=true $doco run --rm netbox ./manage.py test
|
$doco run --rm netbox /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py test
|
||||||
}
|
}
|
||||||
|
|
||||||
test_initializers() {
|
test_initializers() {
|
||||||
echo "🏭 Testing Initializers"
|
echo "🏭 Testing Initializers"
|
||||||
export INITIALIZERS_DIR
|
export INITIALIZERS_DIR
|
||||||
$doco run --rm netbox ./manage.py check
|
$doco run --rm netbox /opt/netbox/docker-entrypoint.sh ./manage.py check
|
||||||
}
|
}
|
||||||
|
|
||||||
test_cleanup() {
|
test_cleanup() {
|
||||||
|
Loading…
Reference in New Issue
Block a user