aboutsummaryrefslogtreecommitdiff
path: root/netbox/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'netbox/Dockerfile')
-rw-r--r--netbox/Dockerfile73
1 files changed, 73 insertions, 0 deletions
diff --git a/netbox/Dockerfile b/netbox/Dockerfile
new file mode 100644
index 0000000..022aebf
--- /dev/null
+++ b/netbox/Dockerfile
@@ -0,0 +1,73 @@
1FROM alpine:latest
2LABEL maintainer="Mike Crute <mike@crute.us>"
3
4ARG netbox_version
5
6ADD config-patch1.diff /config-patch1.diff
7ADD config-patch2.diff /config-patch2.diff
8ADD settings-patch.diff /settings-patch.diff
9
10RUN set -euxo pipefail; \
11 \
12 apk --no-cache add \
13 build-base \
14 dumb-init \
15 jpeg-dev \
16 libffi-dev \
17 libxml2-dev \
18 libxslt-dev \
19 openssl-dev \
20 postgresql-dev \
21 py3-pip \
22 python3-dev \
23 runit \
24 su-exec \
25 uwsgi \
26 uwsgi-python \
27 zlib-dev \
28 ; \
29 cd /tmp; \
30 wget "https://github.com/netbox-community/netbox/archive/v${netbox_version}.tar.gz"; \
31 tar -xvf "v${netbox_version}.tar.gz" -C /opt; \
32 rm "v${netbox_version}.tar.gz"; \
33 mv /opt/netbox-${netbox_version}/ /opt/netbox/; \
34 \
35 cd /; \
36 cp /opt/netbox/netbox/netbox/configuration.example.py /opt/netbox/netbox/netbox/configuration.py; \
37 patch -p1 < /config-patch1.diff; \
38 rm /config-patch1.diff; \
39 \
40 addgroup -S netbox; \
41 adduser -S -G netbox netbox; \
42 chown -R netbox:netbox /opt/netbox/netbox/media; \
43 \
44 cd /opt/netbox; \
45 pip3 install wheel; \
46 pip3 install -r requirements.txt; \
47 \
48 python3 netbox/manage.py collectstatic --no-input; \
49 \
50 cd /; \
51 cp /opt/netbox/netbox/netbox/configuration.example.py /opt/netbox/netbox/netbox/configuration.py; \
52 patch -p1 < /config-patch2.diff; \
53 rm /config-patch2.diff; \
54 \
55 patch -p1 < /settings-patch.diff; \
56 rm /settings-patch.diff; \
57 \
58 mkdir -p /usr/lib/python3.8/site-packages/django/db/backends/postgresqlvault; \
59 touch /usr/lib/python3.8/site-packages/django/db/backends/postgresqlvault/__init__.py; \
60 \
61 rm -rf /root/.cache; \
62 apk --no-cache del --purge \
63 build-base \
64 ;
65
66ADD django-vault-client.py /usr/lib/python3.8/site-packages/django/contrib/vault_client.py
67ADD django-driver.py /usr/lib/python3.8/site-packages/django/db/backends/postgresqlvault/base.py
68ADD etc/ /etc/
69ADD entrypoint.sh /entrypoint.sh
70
71STOPSIGNAL SIGHUP
72ENTRYPOINT [ "/entrypoint.sh" ]
73CMD [ "/usr/bin/dumb-init", "/sbin/runsvdir", "/etc/service" ]