Compression of build arguments and environment variables.

Daan Selen committed Apr 9, 2025 at 15:53 UTC 23c8c4999b8e66ae7bcff2ae2665998d2b278087
1 file changed +46 -45
docker/Dockerfile
+46 -45
@@ -2,8 +2,8 @@
2 FROM node:lts-alpine AS builder
3
4 # Any value inside one of the disable ARGs will be accepted.
5 -ARG DISABLE_MINIFY="yes"
6 -ARG DISABLE_TRANSLATE="yes"
5 +ARG DISABLE_MINIFY="yes" \
6 + DISABLE_TRANSLATE="yes"
7
8 RUN mkdir -p /opt/meshcentral/meshcentral
9 WORKDIR /opt/meshcentral
@@ -38,58 +38,59 @@ RUN rm -rf /opt/meshcentral/meshcentral/node_modules
38
39 FROM alpine:latest
40
41 -ARG PREINSTALL_LIBS="false"
42 -
41 # environment variables
44 -ENV NODE_ENV="production"
45 -ENV CONFIG_FILE="/opt/meshcentral/meshcentral-data/config.json"
46 -ENV DYNAMIC_CONFIG="true"
42 +ENV NODE_ENV="production" \
43 + CONFIG_FILE="/opt/meshcentral/meshcentral-data/config.json" \
44 + DYNAMIC_CONFIG="true"
45
46 # environment variables for the above defined MeshCentral Config.json
49 -ENV ALLOW_PLUGINS="false"
50 -ENV ALLOW_NEW_ACCOUNTS="false"
51 -ENV ALLOWED_ORIGIN="false"
52 -ENV ARGS=""
53 -ENV HOSTNAME="localhost"
54 -ENV IFRAME="false"
55 -ENV LOCAL_SESSION_RECORDING="true"
56 -ENV MINIFY="true"
57 -ENV REGEN_SESSIONKEY="false"
58 -ENV REVERSE_PROXY=""
59 -ENV REVERSE_PROXY_TLS_PORT="443"
60 -ENV WEBRTC="false"
61 -ENV TRUSTED_PROXY=""
47 +ENV ALLOW_PLUGINS="false" \
48 + ALLOW_NEW_ACCOUNTS="false" \
49 + ALLOWED_ORIGIN="false" \
50 + IFRAME="false" \
51 + REGEN_SESSIONKEY="false" \
52 + WEBRTC="false" \
53 + LOCAL_SESSION_RECORDING="true" \
54 + MINIFY="true" \
55 + HOSTNAME="localhost" \
56 + REVERSE_PROXY="" \
57 + REVERSE_PROXY_TLS_PORT="443" \
58 + TRUSTED_PROXY="" \
59 + ARGS=""
60 +
61 +# Database
62 +# Multi-variable declaration to reduce layers.
63 +ENV USE_MONGODB="false" \
64 + USE_POSTGRESQL="false" \
65 + USE_MARIADB="false"
66 +
67 +# Preinstallation args
68 +ARG PREINSTALL_LIBS="false" \
69 + INCLUDE_MONGODB_TOOLS="false" \
70 + INCLUDE_POSTGRESQL_TOOLS="false" \
71 + INCLUDE_MARIADB_TOOLS="false"
72
73 # MongoDB Variables
64 -ARG INCLUDE_MONGODB_TOOLS="false"
65 -
66 -ENV USE_MONGODB="false"
67 -ENV MONGO_HOST=""
68 -ENV MONGO_PORT="27017"
69 -ENV MONGO_USERNAME=""
70 -ENV MONGO_PASS=""
71 -# The following Mongo variable overwrites most previously declared variables.
72 -ENV MONGO_URL=""
74 +# The following MONGO_URL variable overwrites most other mongoDb related varialbes.
75 +ENV MONGO_HOST="" \
76 + MONGO_PORT="27017" \
77 + MONGO_USERNAME="" \
78 + MONGO_PASS="" \
79 + MONGO_URL=""
80
81 # PostgreSQL Variables
75 -ARG INCLUDE_POSTGRESQL_TOOLS="false"
76 -
77 -ENV USE_POSTGRESQL="false"
78 -ENV PSQL_HOST=""
79 -ENV PSQL_PORT="5432"
80 -ENV PSQL_USER=""
81 -ENV PSQL_PASS=""
82 -ENV PSQL_DATABASE=""
82 +ENV PSQL_HOST="" \
83 + PSQL_PORT="5432" \
84 + PSQL_USER="" \
85 + PSQL_PASS="" \
86 + PSQL_DATABASE=""
87
88 # MariaDB/MySQL Variables, Alpine Linux only provides the actual MariaDB binaries.
85 -ARG INCLUDE_MARIADB_TOOLS="false"
86 -
87 -ENV USE_MARIADB="false"
88 -ENV MARIADB_HOST=""
89 -ENV MARIADB_PORT="3306"
90 -ENV MARIADB_USER=""
91 -ENV MARIADB_PASS=""
92 -ENV MARIADB_DATABASE=""
89 +ENV MARIADB_HOST="" \
90 + MARIADB_PORT="3306" \
91 + MARIADB_USER="" \
92 + MARIADB_PASS="" \
93 + MARIADB_DATABASE=""
94
95 RUN mkdir -p /opt/meshcentral/meshcentral
96 WORKDIR /opt/meshcentral