1
1
ARG FROM
2
2
FROM ${FROM} as builder
3
3
4
- RUN apk add --no-cache \
5
- bash \
6
- build-base \
7
- cargo \
4
+ RUN export DEBIAN_FRONTEND=noninteractive \
5
+ && apt-get update -qq \
6
+ && apt-get upgrade \
7
+ --yes -qq --no-install-recommends \
8
+ && apt-get install \
9
+ --yes -qq --no-install-recommends \
10
+ build-essential \
8
11
ca-certificates \
9
- cmake \
10
- cyrus-sasl-dev \
11
- git \
12
- graphviz \
13
- jpeg-dev \
14
- libevent-dev \
15
- libffi-dev \
16
- libxslt-dev \
17
- make \
18
- musl-dev \
19
- openldap-dev \
20
- postgresql-dev \
21
- py3-pip \
12
+ libldap-dev \
13
+ libpq-dev \
14
+ libsasl2-dev \
15
+ libssl-dev \
22
16
python3-dev \
23
- && python3 -m venv /opt/netbox/venv \
24
- && /opt/netbox/venv/bin/python3 -m pip install --upgrade \
17
+ python3-pip \
18
+ python3-venv \
19
+ && python3 -m venv /opt/netbox/venv \
20
+ && /opt/netbox/venv/bin/python3 -m pip install --upgrade \
25
21
pip \
26
22
setuptools \
27
23
wheel
28
24
29
- # Build libcrc32c for google-crc32c python module
30
- RUN git clone https://github.com/google/crc32c \
31
- && cd crc32c \
32
- && git submodule update --init --recursive \
33
- && mkdir build \
34
- && cd build \
35
- && cmake \
36
- -DCMAKE_BUILD_TYPE=Release \
37
- -DCRC32C_BUILD_TESTS=no \
38
- -DCRC32C_BUILD_BENCHMARKS=no \
39
- -DBUILD_SHARED_LIBS=yes \
40
- .. \
41
- && make all install
42
-
43
25
ARG NETBOX_PATH
44
26
COPY ${NETBOX_PATH}/requirements.txt requirements-container.txt /
45
27
RUN /opt/netbox/venv/bin/pip install \
@@ -53,35 +35,37 @@ RUN /opt/netbox/venv/bin/pip install \
53
35
ARG FROM
54
36
FROM ${FROM} as main
55
37
56
- RUN apk add --no-cache \
57
- bash \
38
+ RUN export DEBIAN_FRONTEND=noninteractive \
39
+ && apt-get update -qq \
40
+ && apt-get upgrade \
41
+ --yes -qq --no-install-recommends \
42
+ && apt-get install \
43
+ --yes -qq --no-install-recommends \
58
44
ca-certificates \
59
45
curl \
60
- graphviz \
61
- libevent \
62
- libffi \
63
- libjpeg-turbo \
64
- libxslt \
46
+ libpq5 \
65
47
openssl \
66
- postgresql-client \
67
- postgresql-libs \
68
- py3-pip \
69
48
python3 \
49
+ python3-distutils \
70
50
tini \
71
- unit \
72
- unit-python3
73
-
74
- WORKDIR /opt
51
+ && curl -sL https://nginx.org/keys/nginx_signing.key \
52
+ > /etc/apt/trusted.gpg.d/nginx.asc && \
53
+ echo "deb https://packages.nginx.org/unit/debian/ bullseye unit" \
54
+ > /etc/apt/sources.list.d/unit.list \
55
+ && apt-get update -qq \
56
+ && apt-get install \
57
+ --yes -qq --no-install-recommends \
58
+ unit=1.27.0-1~bullseye \
59
+ unit-python3.9=1.27.0-1~bullseye \
60
+ && rm -rf /var/lib/apt/lists/*
75
61
76
- COPY --from=builder /usr/local/lib/libcrc32c.* /usr/local/lib/
77
- COPY --from=builder /usr/local/include/crc32c /usr/local/include
78
- COPY --from=builder /usr/local/lib/cmake/Crc32c /usr/local/lib/cmake/
79
62
COPY --from=builder /opt/netbox/venv /opt/netbox/venv
80
63
81
64
ARG NETBOX_PATH
82
65
COPY ${NETBOX_PATH} /opt/netbox
83
66
84
67
COPY docker/configuration.docker.py /opt/netbox/netbox/netbox/configuration.py
68
+ COPY docker/ldap_config.docker.py /opt/netbox/netbox/netbox/ldap_config.py
85
69
COPY docker/docker-entrypoint.sh /opt/netbox/docker-entrypoint.sh
86
70
COPY docker/housekeeping.sh /opt/netbox/housekeeping.sh
87
71
COPY docker/launch-netbox.sh /opt/netbox/launch-netbox.sh
@@ -101,14 +85,15 @@ RUN mkdir -p static /opt/unit/state/ /opt/unit/tmp/ \
101
85
--config-file /opt/netbox/mkdocs.yml --site-dir /opt/netbox/netbox/project-static/docs/ \
102
86
&& SECRET_KEY="dummy" /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py collectstatic --no-input
103
87
104
- ENTRYPOINT [ "/sbin/tini" , "--" ]
88
+ ENV LANG=C.UTF-8
89
+ ENTRYPOINT [ "/usr/bin/tini" , "--" ]
105
90
106
91
CMD [ "/opt/netbox/docker-entrypoint.sh" , "/opt/netbox/launch-netbox.sh" ]
107
92
108
- LABEL ORIGINAL_TAG ="" \
109
- NETBOX_GIT_BRANCH ="" \
110
- NETBOX_GIT_REF ="" \
111
- NETBOX_GIT_URL ="" \
93
+ LABEL netbox.original-tag ="" \
94
+ netbox.git-branch ="" \
95
+ netbox.git-ref ="" \
96
+ netbox.git-url ="" \
112
97
# See http://label-schema.org/rc1/#build-time-labels
113
98
# Also https://microbadger.com/labels
114
99
org.label-schema.schema-version="1.0" \
@@ -133,16 +118,3 @@ LABEL ORIGINAL_TAG="" \
133
118
org.opencontainers.image.source="https://github.com/netbox-community/netbox-docker.git" \
134
119
org.opencontainers.image.revision="" \
135
120
org.opencontainers.image.version="snapshot"
136
-
137
- # ####
138
- # # LDAP specific configuration
139
- # ####
140
-
141
- FROM main as ldap
142
-
143
- RUN apk add --no-cache \
144
- libsasl \
145
- libldap \
146
- util-linux
147
-
148
- COPY docker/ldap_config.docker.py /opt/netbox/netbox/netbox/ldap_config.py
0 commit comments