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