1418808930
In the Wiki backup section we use bzip2 in some of the examples. So it should be installed in the image.
109 lines
3.8 KiB
Docker
109 lines
3.8 KiB
Docker
ARG FROM
|
|
FROM ${FROM} as builder
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
|
&& apt-get update -qq \
|
|
&& apt-get upgrade \
|
|
--yes -qq --no-install-recommends \
|
|
&& apt-get install \
|
|
--yes -qq --no-install-recommends \
|
|
build-essential \
|
|
ca-certificates \
|
|
libldap-dev \
|
|
libpq-dev \
|
|
libsasl2-dev \
|
|
libssl-dev \
|
|
python3-dev \
|
|
python3-pip \
|
|
python3-venv \
|
|
&& python3 -m venv /opt/netbox/venv \
|
|
&& /opt/netbox/venv/bin/python3 -m pip install --upgrade \
|
|
pip \
|
|
setuptools \
|
|
wheel
|
|
|
|
ARG NETBOX_PATH
|
|
COPY ${NETBOX_PATH}/requirements.txt requirements-container.txt /
|
|
RUN /opt/netbox/venv/bin/pip install \
|
|
-r /requirements.txt \
|
|
-r /requirements-container.txt
|
|
|
|
###
|
|
# Main stage
|
|
###
|
|
|
|
ARG FROM
|
|
FROM ${FROM} as main
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
|
&& apt-get update -qq \
|
|
&& apt-get upgrade \
|
|
--yes -qq --no-install-recommends \
|
|
&& apt-get install \
|
|
--yes -qq --no-install-recommends \
|
|
bzip2 \
|
|
ca-certificates \
|
|
curl \
|
|
libldap-common \
|
|
libpq5 \
|
|
openssl \
|
|
python3 \
|
|
python3-distutils \
|
|
tini \
|
|
&& curl -sL https://nginx.org/keys/nginx_signing.key \
|
|
> /etc/apt/trusted.gpg.d/nginx.asc && \
|
|
echo "deb https://packages.nginx.org/unit/ubuntu/ jammy unit" \
|
|
> /etc/apt/sources.list.d/unit.list \
|
|
&& apt-get update -qq \
|
|
&& apt-get install \
|
|
--yes -qq --no-install-recommends \
|
|
unit=1.27.0-1~jammy \
|
|
unit-python3.10=1.27.0-1~jammy \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /opt/netbox/venv /opt/netbox/venv
|
|
|
|
ARG NETBOX_PATH
|
|
COPY ${NETBOX_PATH} /opt/netbox
|
|
|
|
COPY docker/configuration.docker.py /opt/netbox/netbox/netbox/configuration.py
|
|
COPY docker/ldap_config.docker.py /opt/netbox/netbox/netbox/ldap_config.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 configuration/ /etc/netbox/config/
|
|
COPY docker/nginx-unit.json /etc/unit/
|
|
|
|
WORKDIR /opt/netbox/netbox
|
|
|
|
# Must set permissions for '/opt/netbox/netbox/media' directory
|
|
# to g+w so that pictures can be uploaded to netbox.
|
|
RUN mkdir -p static /opt/unit/state/ /opt/unit/tmp/ \
|
|
&& chown -R unit:root media /opt/unit/ \
|
|
&& chmod -R g+w media /opt/unit/ \
|
|
&& cd /opt/netbox/ && SECRET_KEY="dummy" /opt/netbox/venv/bin/python -m mkdocs build \
|
|
--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
|
|
|
|
ENV LANG=C.UTF-8 PATH=/opt/netbox/venv/bin:$PATH
|
|
ENTRYPOINT [ "/usr/bin/tini", "--" ]
|
|
|
|
CMD [ "/opt/netbox/docker-entrypoint.sh", "/opt/netbox/launch-netbox.sh" ]
|
|
|
|
LABEL netbox.original-tag="" \
|
|
netbox.git-branch="" \
|
|
netbox.git-ref="" \
|
|
netbox.git-url="" \
|
|
# See https://github.com/opencontainers/image-spec/blob/master/annotations.md#pre-defined-annotation-keys
|
|
org.opencontainers.image.created="" \
|
|
org.opencontainers.image.title="NetBox Docker" \
|
|
org.opencontainers.image.description="A container based distribution of NetBox, the free and open IPAM and DCIM solution." \
|
|
org.opencontainers.image.licenses="Apache-2.0" \
|
|
org.opencontainers.image.authors="The netbox-docker contributors." \
|
|
org.opencontainers.image.vendor="The netbox-docker contributors." \
|
|
org.opencontainers.image.url="https://github.com/netbox-community/netbox-docker" \
|
|
org.opencontainers.image.documentation="https://github.com/netbox-community/netbox-docker/wiki" \
|
|
org.opencontainers.image.source="https://github.com/netbox-community/netbox-docker.git" \
|
|
org.opencontainers.image.revision="" \
|
|
org.opencontainers.image.version=""
|