@@ -33,6 +33,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends gosu \
3333 && addgroup --system --gid 9001 lowcoder \
3434 && adduser --system --disabled-password --no-create-home --uid 9001 --gid 9001 lowcoder
3535
36+
3637# Copy lowcoder server configuration
3738COPY --chown=lowcoder:lowcoder --from=build-api-service /lowcoder/api-service /lowcoder/api-service
3839
@@ -145,7 +146,7 @@ RUN yarn build
145146# # To create a separate image out of it, build it with:
146147# # DOCKER_BUILDKIT=1 docker build -f deploy/docker/Dockerfile -t lowcoderorg/lowcoder-ce-frontend --target lowcoder-ce-frontend .
147148# #
148- FROM nginx:1.25 .1 AS lowcoder-ce-frontend
149+ FROM nginx:1.27 .1 AS lowcoder-ce-frontend
149150LABEL maintainer="lowcoder"
150151
151152# Change default nginx user into lowcoder user and remove default nginx config
@@ -186,27 +187,29 @@ EXPOSE 3443
186187# #
187188# # Build Lowcoder all-in-one image
188189# #
189- FROM lowcoder-ce-frontend
190+ FROM ubuntu:jammy
190191LABEL maintainer="lowcoder"
191192
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 \
194196 && rm -rf /var/cache/apt/lists /var/lib/apt/lists/* /var/log/dpkg.log \
195197 && apt-get clean
196198
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
201208
202209
203210# 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 \
210213 mongodb-org \
211214 redis \
212215 supervisor \
@@ -215,10 +218,39 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-instal
215218 openjdk-17-jdk-headless \
216219 && npm install -g yarn \
217220 && rm -rf /var/cache/apt/lists /var/lib/apt/lists/* /var/log/dpkg.log \
218- && mkdir -p /lowcoder/assets \
219221 && apt-get clean \
220222 && rm -rf /tmp/*
221223
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+
222254# Add lowcoder api-service
223255COPY --chown=lowcoder:lowcoder --from=lowcoder-ce-api-service /lowcoder/api-service /lowcoder/api-service
224256RUN mkdir -p /lowcoder/plugins/ && chown lowcoder:lowcoder /lowcoder/plugins/
0 commit comments