@@ -185,6 +185,84 @@ EXPOSE 3443
185
185
186
186
# ############################################################################
187
187
188
+ # #
189
+ # # Build lowcoder client (Enterprise) application
190
+ # #
191
+ FROM node:20.2-slim AS build-client-ee
192
+
193
+ # curl is required for yarn build to succeed, because it calls it while building client
194
+ RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates
195
+
196
+ # Build client
197
+ COPY ./client /lowcoder-client-ee
198
+ WORKDIR /lowcoder-client-ee
199
+ RUN yarn --immutable
200
+
201
+ ARG REACT_APP_COMMIT_ID=test
202
+ ARG REACT_APP_ENV=production
203
+ ARG REACT_APP_EDITION=enterprise
204
+ ARG REACT_APP_DISABLE_JS_SANDBOX=true
205
+ RUN yarn build:ee
206
+
207
+ # Build lowcoder-comps
208
+ WORKDIR /lowcoder-client-ee/packages/lowcoder-comps
209
+ RUN yarn install
210
+ RUN yarn build
211
+ RUN tar -zxf lowcoder-comps-*.tgz && mv package lowcoder-comps
212
+
213
+ # Build lowcoder-sdk
214
+ WORKDIR /lowcoder-client-ee/packages/lowcoder-sdk
215
+ RUN yarn install
216
+ RUN yarn build
217
+
218
+ WORKDIR /lowcoder-client-ee/packages/lowcoder-sdk-webpack-bundle
219
+ RUN yarn install
220
+ RUN yarn build
221
+
222
+ # #
223
+ # # Intermediary Lowcoder client (Enterprise) image
224
+ # #
225
+ # # To create a separate image out of it, build it with:
226
+ # # DOCKER_BUILDKIT=1 docker build -f deploy/docker/Dockerfile -t lowcoderorg/lowcoder-ee-frontend --target lowcoder-ee-frontend .
227
+ # #
228
+ FROM nginx:1.27.1 AS lowcoder-ee-frontend
229
+ LABEL maintainer="lowcoder"
230
+
231
+ # Change default nginx user into lowcoder user and remove default nginx config
232
+ RUN usermod --login lowcoder --uid 9001 nginx \
233
+ && groupmod --new-name lowcoder --gid 9001 nginx \
234
+ && rm -f /etc/nginx/nginx.conf \
235
+ && mkdir -p /lowcoder/assets
236
+
237
+ # Copy lowcoder client
238
+ COPY --chown=lowcoder:lowcoder --from=build-client-ee /lowcoder-client-ee/packages/lowcoder/build/ /lowcoder/client
239
+ # Copy lowcoder components
240
+ COPY --chown=lowcoder:lowcoder --from=build-client-ee /lowcoder-client-ee/packages/lowcoder-comps/lowcoder-comps /lowcoder/client-comps
241
+ # Copy lowcoder SDK
242
+ COPY --chown=lowcoder:lowcoder --from=build-client-ee /lowcoder-client-ee/packages/lowcoder-sdk /lowcoder/client-sdk
243
+ # Copy lowcoder SDK webpack bundle
244
+ COPY --chown=lowcoder:lowcoder --from=build-client-ee /lowcoder-client-ee/packages/lowcoder-sdk-webpack-bundle/dist /lowcoder/client-embed
245
+
246
+
247
+ # Copy additional nginx init scripts
248
+ COPY deploy/docker/frontend/00-change-nginx-user.sh /docker-entrypoint.d/00-change-nginx-user.sh
249
+ COPY deploy/docker/frontend/01-update-nginx-conf.sh /docker-entrypoint.d/01-update-nginx-conf.sh
250
+
251
+ RUN chmod +x /docker-entrypoint.d/00-change-nginx-user.sh && \
252
+ chmod +x /docker-entrypoint.d/01-update-nginx-conf.sh
253
+
254
+ COPY deploy/docker/frontend/server.conf /etc/nginx/server.conf
255
+ COPY deploy/docker/frontend/nginx-http.conf /etc/nginx/nginx-http.conf
256
+ COPY deploy/docker/frontend/nginx-https.conf /etc/nginx/nginx-https.conf
257
+ COPY deploy/docker/frontend/ssl-certificate.conf /etc/nginx/ssl-certificate.conf
258
+ COPY deploy/docker/frontend/ssl-params.conf /etc/nginx/ssl-params.conf
259
+
260
+
261
+ EXPOSE 3000
262
+ EXPOSE 3444
263
+
264
+ # ############################################################################
265
+
188
266
# #
189
267
# # Build Lowcoder all-in-one image
190
268
# #
0 commit comments