@@ -33,6 +33,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends gosu \
33
33
&& addgroup --system --gid 9001 lowcoder \
34
34
&& adduser --system --disabled-password --no-create-home --uid 9001 --gid 9001 lowcoder
35
35
36
+
36
37
# Copy lowcoder server configuration
37
38
COPY --chown=lowcoder:lowcoder --from=build-api-service /lowcoder/api-service /lowcoder/api-service
38
39
@@ -145,7 +146,7 @@ RUN yarn build
145
146
# # To create a separate image out of it, build it with:
146
147
# # DOCKER_BUILDKIT=1 docker build -f deploy/docker/Dockerfile -t lowcoderorg/lowcoder-ce-frontend --target lowcoder-ce-frontend .
147
148
# #
148
- FROM nginx:1.25 .1 AS lowcoder-ce-frontend
149
+ FROM nginx:1.27 .1 AS lowcoder-ce-frontend
149
150
LABEL maintainer="lowcoder"
150
151
151
152
# Change default nginx user into lowcoder user and remove default nginx config
@@ -186,27 +187,29 @@ EXPOSE 3443
186
187
# #
187
188
# # Build Lowcoder all-in-one image
188
189
# #
189
- FROM lowcoder-ce-frontend
190
+ FROM ubuntu:jammy
190
191
LABEL maintainer="lowcoder"
191
192
192
- RUN apt-get update && apt-get upgrade -y \
193
- && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y curl ca-certificates gnupg \
193
+ # Install essential tools
194
+ RUN apt-get update \
195
+ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y curl ca-certificates gnupg bash lsb-release \
194
196
&& rm -rf /var/cache/apt/lists /var/lib/apt/lists/* /var/log/dpkg.log \
195
197
&& apt-get clean
196
198
197
- # Add nodejs repo and keys
198
- RUN mkdir -p /etc/apt/keyrings \
199
- && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
200
- && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
199
+ # Add required apt repositories and signing keys
200
+ RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource-keyring.gpg \
201
+ && echo "deb [signed-by=/usr/share/keyrings/nodesource-keyring.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
202
+ && curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg \
203
+ && echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb `lsb_release -cs` main" | tee /etc/apt/sources.list.d/redis.list \
204
+ && curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-archive-keyring.gpg \
205
+ && echo "deb [signed-by=/usr/share/keyrings/mongodb-archive-keyring.gpg] https://repo.mongodb.org/apt/ubuntu `lsb_release -cs`/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list \
206
+ && curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg \
207
+ && echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
201
208
202
209
203
210
# Install required packages
204
- RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y bash gnupg curl lsb-release \
205
- && curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg \
206
- && echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb bookworm main" | tee /etc/apt/sources.list.d/redis.list \
207
- && curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-archive-keyring.gpg \
208
- && echo "deb [signed-by=/usr/share/keyrings/mongodb-archive-keyring.gpg] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list \
209
- && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends -y \
211
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends -y \
212
+ nginx=1.27.1-1~jammy \
210
213
mongodb-org \
211
214
redis \
212
215
supervisor \
@@ -215,10 +218,39 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-instal
215
218
openjdk-17-jdk-headless \
216
219
&& npm install -g yarn \
217
220
&& rm -rf /var/cache/apt/lists /var/lib/apt/lists/* /var/log/dpkg.log \
218
- && mkdir -p /lowcoder/assets \
219
221
&& apt-get clean \
220
222
&& rm -rf /tmp/*
221
223
224
+ # Use configuration setup from official nginx image
225
+ RUN rm -rf /etc/nginx/nginx.conf
226
+ COPY --from=nginx:1.27.1 /docker-entrypoint.d /docker-entrypoint.d
227
+ COPY --from=nginx:1.27.1 /docker-entrypoint.sh /docker-entrypoint.sh
228
+
229
+ # Add lowcoder user
230
+ RUN usermod --login lowcoder --uid 9001 nginx \
231
+ && groupmod --new-name lowcoder --gid 9001 nginx
232
+
233
+ # Copy additional nginx init scripts and configs
234
+ COPY --chmod=0755 deploy/docker/frontend/00-change-nginx-user.sh /docker-entrypoint.d/00-change-nginx-user.sh
235
+ COPY --chmod=0755 deploy/docker/frontend/01-update-nginx-conf.sh /docker-entrypoint.d/01-update-nginx-conf.sh
236
+ COPY deploy/docker/frontend/server.conf /etc/nginx/server.conf
237
+ COPY deploy/docker/frontend/nginx-http.conf /etc/nginx/nginx-http.conf
238
+ COPY deploy/docker/frontend/nginx-https.conf /etc/nginx/nginx-https.conf
239
+ COPY deploy/docker/frontend/ssl-certificate.conf /etc/nginx/ssl-certificate.conf
240
+ COPY deploy/docker/frontend/ssl-params.conf /etc/nginx/ssl-params.conf
241
+
242
+
243
+ # Add lowcoder frontend
244
+ # copy lowcoder client
245
+ COPY --chown=lowcoder:lowcoder --from=build-client /lowcoder-client/packages/lowcoder/build/ /lowcoder/client
246
+ # copy lowcoder components
247
+ COPY --chown=lowcoder:lowcoder --from=build-client /lowcoder-client/packages/lowcoder-comps/lowcoder-comps /lowcoder/client-comps
248
+ # copy lowcoder SDK
249
+ COPY --chown=lowcoder:lowcoder --from=build-client /lowcoder-client/packages/lowcoder-sdk /lowcoder/client-sdk
250
+ # copy lowcoder SDK webpack bundle
251
+ COPY --chown=lowcoder:lowcoder --from=build-client /lowcoder-client/packages/lowcoder-sdk-webpack-bundle/dist /lowcoder/client-embed
252
+ RUN mkdir -p /lowcoder/assets/ && chown lowcoder:lowcoder /lowcoder/assets/
253
+
222
254
# Add lowcoder api-service
223
255
COPY --chown=lowcoder:lowcoder --from=lowcoder-ce-api-service /lowcoder/api-service /lowcoder/api-service
224
256
RUN mkdir -p /lowcoder/plugins/ && chown lowcoder:lowcoder /lowcoder/plugins/
0 commit comments