@@ -27,7 +27,7 @@ ARG NETBOX_PATH
2727COPY ${NETBOX_PATH}/requirements.txt requirements-container.txt /
2828ENV VIRTUAL_ENV=/opt/netbox/venv
2929RUN \
30- # Gunicorn is not needed because we use Nginx Unit
30+ # Gunicorn is not needed because we use Granian
3131 sed -i -e '/gunicorn/d' /requirements.txt && \
3232 # We need 'social-auth-core[all]' in the Docker image. But if we put it in our own requirements-container.txt
3333 # we have potential version conflicts and the build will fail.
4646ARG FROM
4747FROM ${FROM} AS main
4848
49- COPY docker/unit.list /etc/apt/sources.list.d/unit.list
50- ADD --chmod=444 --chown=0:0 https://unit.nginx.org/keys/nginx-keyring.gpg /usr/share/keyrings/nginx-keyring.gpg
5149RUN export DEBIAN_FRONTEND=noninteractive \
5250 && apt-get update -qq \
5351 && apt-get upgrade \
@@ -64,8 +62,6 @@ RUN export DEBIAN_FRONTEND=noninteractive \
6462 openssl \
6563 python3 \
6664 tini \
67- unit-python3.12=1.34.2-1~noble \
68- unit=1.34.2-1~noble \
6965 && rm -rf /var/lib/apt/lists/*
7066
7167# Copy the modified 'requirements*.txt' files, to have the files actually used during installation
@@ -81,21 +77,21 @@ COPY docker/ldap_config.docker.py /opt/netbox/netbox/netbox/ldap_config.py
8177COPY docker/docker-entrypoint.sh /opt/netbox/docker-entrypoint.sh
8278COPY docker/launch-netbox.sh /opt/netbox/launch-netbox.sh
8379COPY configuration/ /etc/netbox/config/
84- COPY docker/nginx-unit.json /etc/unit/
80+ COPY docker/granian.py /opt/netbox/netbox/netbox/granian.py
8581COPY VERSION /opt/netbox/VERSION
8682
8783WORKDIR /opt/netbox/netbox
8884
8985# Must set permissions for '/opt/netbox/netbox/media' directory
9086# to g+w so that pictures can be uploaded to netbox.
91- RUN mkdir -p static media /opt/unit/state/ /opt/unit/tmp/ \
92- && chown -R unit:root /opt/unit/ media reports scripts \
93- && chmod -R g+w /opt/unit/ media reports scripts \
94- && cd /opt/netbox/ && SECRET_KEY= "dummyKeyWithMinimumLength-------------------------" /opt/netbox/venv/bin/python -m mkdocs build \
95- --config-file /opt/netbox/mkdocs.yml --site-dir /opt/netbox/netbox/project-static/docs/ \
96- && DEBUG= "true" SECRET_KEY= "dummyKeyWithMinimumLength-------------------------" /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py collectstatic --no-input \
97- && mkdir /opt/netbox/netbox/local \
98- && echo "build: Docker-$(cat /opt/netbox/VERSION)" > /opt/netbox/netbox/local/release.yaml
87+ RUN useradd --home-dir /opt/netbox/ --no-create-home --no-user-group --system --shell /bin/false --uid 999 --gid 0 netbox \
88+ && mkdir -p static media local \
89+ && chown -R netbox:root media reports scripts \
90+ && chmod -R g+w media reports scripts \
91+ && cd /opt/netbox/ && SECRET_KEY= "dummyKeyWithMinimumLength-------------------------" /opt/netbox/venv/bin/python -m mkdocs build \
92+ --config-file /opt/netbox/mkdocs.yml --site-dir /opt/netbox/netbox/project-static/docs/ \
93+ && DEBUG= "true" SECRET_KEY= "dummyKeyWithMinimumLength-------------------------" /opt/netbox/venv/bin/python /opt/ netbox/netbox/manage.py collectstatic --no-input \
94+ && echo "build: Docker-$(cat /opt/netbox/VERSION)" > /opt/netbox/netbox/local/release.yaml
9995
10096ENV LANG=C.utf8 PATH=/opt/netbox/venv/bin:$PATH VIRTUAL_ENV=/opt/netbox/venv UV_NO_CACHE=1
10197ENTRYPOINT [ "/usr/bin/tini" , "--" ]
0 commit comments