Skip to content

Commit c790995

Browse files
authored
Optimised Dockerfile.
* Move the installation of dependencies to the top of the stage. * Upgrade all system packages. * Combine copy layers where possible.
1 parent 8c153be commit c790995

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

Dockerfile

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -154,13 +154,27 @@ COPY --from=pg18-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-18/
154154

155155
FROM python:3-alpine
156156

157+
# Install runtime dependencies
158+
RUN apk update && apk upgrade && \
159+
apk add \
160+
bash \
161+
postfix \
162+
krb5-libs \
163+
libjpeg-turbo \
164+
shadow \
165+
sudo \
166+
tzdata \
167+
libedit \
168+
libldap \
169+
libcap && \
170+
rm -rf /var/cache/apk/*
171+
157172
# Copy in the Python packages
158173
COPY --from=env-builder /venv /venv
159174

160175
# Copy in the tools
161176
COPY --from=tool-builder /usr/local/pgsql /usr/local/
162-
COPY --from=pg18-builder /usr/local/lib/libpq.so.5.18 /usr/lib/
163-
COPY --from=pg18-builder /usr/lib/liblz4.so.1.10.0 /usr/lib/
177+
COPY --from=pg18-builder /usr/local/lib/libpq.so.5.18 /usr/lib/liblz4.so.1.10.0 /usr/lib/
164178

165179
RUN ln -s libpq.so.5.18 /usr/lib/libpq.so.5 && \
166180
ln -s libpq.so.5.18 /usr/lib/libpq.so && \
@@ -172,26 +186,14 @@ ENV PYTHONPATH=/pgadmin4
172186
# Copy in the code and docs
173187
COPY --from=app-builder /pgadmin4/web /pgadmin4
174188
COPY --from=docs-builder /pgadmin4/docs/en_US/_build/html/ /pgadmin4/docs
175-
COPY pkg/docker/run_pgadmin.py /pgadmin4
176-
COPY pkg/docker/gunicorn_config.py /pgadmin4
189+
COPY pkg/docker/run_pgadmin.py pkg/docker/gunicorn_config.py /pgadmin4/
177190
COPY pkg/docker/entrypoint.sh /entrypoint.sh
178191

179192
# License files
180193
COPY LICENSE /pgadmin4/LICENSE
181194

182-
# Install runtime dependencies and configure everything in one RUN step
183-
RUN apk add --no-cache \
184-
bash \
185-
postfix \
186-
krb5-libs \
187-
libjpeg-turbo \
188-
shadow \
189-
sudo \
190-
tzdata \
191-
libedit \
192-
libldap \
193-
libcap && \
194-
/venv/bin/python3 -m pip install --no-cache-dir gunicorn==23.0.0 && \
195+
# Configure everything in one RUN step
196+
RUN /venv/bin/python3 -m pip install --no-cache-dir gunicorn==23.0.0 && \
195197
find / -type d -name '__pycache__' -exec rm -rf {} + && \
196198
useradd -r -u 5050 -g root -s /sbin/nologin pgadmin && \
197199
mkdir -p /run/pgadmin /var/lib/pgadmin && \

0 commit comments

Comments
 (0)