@@ -8,24 +8,22 @@ ARG USE_CN_MIRROR
88
99ENV DEBIAN_FRONTEND="noninteractive"
1010
11- RUN <<'EOF'
12- set -e
13- if [ "${USE_CN_MIRROR:-false}" = "true" ]; then
14- sed -i "s/deb.debian.org/mirrors.ustc.edu.cn/g" "/etc/apt/sources.list.d/debian.sources"
15- fi
16- apt update
17- apt install ca-certificates proxychains-ng -qy
18- mkdir -p /distroless/bin /distroless/etc /distroless/etc/ssl/certs /distroless/lib
19- cp /usr/lib/$(arch)-linux-gnu/libproxychains.so.4 /distroless/lib/libproxychains.so.4
20- cp /usr/lib/$(arch)-linux-gnu/libdl.so.2 /distroless/lib/libdl.so.2
21- cp /usr/bin/proxychains4 /distroless/bin/proxychains
22- cp /etc/proxychains4.conf /distroless/etc/proxychains4.conf
23- cp /usr/lib/$(arch)-linux-gnu/libstdc++.so.6 /distroless/lib/libstdc++.so.6
24- cp /usr/lib/$(arch)-linux-gnu/libgcc_s.so.1 /distroless/lib/libgcc_s.so.1
25- cp /usr/local/bin/node /distroless/bin/node
26- cp /etc/ssl/certs/ca-certificates.crt /distroless/etc/ssl/certs/ca-certificates.crt
27- rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
28- EOF
11+ RUN set -e && \
12+ if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \
13+ sed -i "s/deb.debian.org/mirrors.ustc.edu.cn/g" "/etc/apt/sources.list.d/debian.sources" ; \
14+ fi && \
15+ apt update && \
16+ apt install ca-certificates proxychains-ng -qy && \
17+ mkdir -p /distroless/bin /distroless/etc /distroless/etc/ssl/certs /distroless/lib && \
18+ cp /usr/lib/$(arch)-linux-gnu/libproxychains.so.4 /distroless/lib/libproxychains.so.4 && \
19+ cp /usr/lib/$(arch)-linux-gnu/libdl.so.2 /distroless/lib/libdl.so.2 && \
20+ cp /usr/bin/proxychains4 /distroless/bin/proxychains && \
21+ cp /etc/proxychains4.conf /distroless/etc/proxychains4.conf && \
22+ cp /usr/lib/$(arch)-linux-gnu/libstdc++.so.6 /distroless/lib/libstdc++.so.6 && \
23+ cp /usr/lib/$(arch)-linux-gnu/libgcc_s.so.1 /distroless/lib/libgcc_s.so.1 && \
24+ cp /usr/local/bin/node /distroless/bin/node && \
25+ cp /etc/ssl/certs/ca-certificates.crt /distroless/etc/ssl/certs/ca-certificates.crt && \
26+ rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
2927
3028# # Builder image, install all the dependencies and build the app
3129FROM base AS builder
@@ -77,41 +75,37 @@ COPY patches ./patches
7775# bring in desktop workspace manifest so pnpm can resolve it
7876COPY apps/desktop/src/main/package.json ./apps/desktop/src/main/package.json
7977
80- RUN <<'EOF'
81- set -e
82- if [ "${USE_CN_MIRROR:-false}" = "true" ]; then
83- export SENTRYCLI_CDNURL="https://npmmirror.com/mirrors/sentry-cli"
84- npm config set registry "https://registry.npmmirror.com/"
85- echo 'canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas' >> .npmrc
86- fi
87- export COREPACK_NPM_REGISTRY=$(npm config get registry | sed 's/\/ $//' )
88- npm i -g corepack@latest
89- corepack enable
90- corepack use $(sed -n 's/.*"packageManager": "\( .*\) ".*/\1 /p' package.json)
91- pnpm i
92- mkdir -p /deps
93- cd /deps
94- pnpm init
95- pnpm add pg drizzle-orm
96- EOF
78+ RUN set -e && \
79+ if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \
80+ export SENTRYCLI_CDNURL="https://npmmirror.com/mirrors/sentry-cli" ; \
81+ npm config set registry "https://registry.npmmirror.com/" ; \
82+ echo 'canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas' >> .npmrc; \
83+ fi && \
84+ export COREPACK_NPM_REGISTRY=$(npm config get registry | sed 's/\/ $//' ) && \
85+ npm i -g corepack@latest && \
86+ corepack enable && \
87+ corepack use $(sed -n 's/.*"packageManager": "\( .*\) ".*/\1 /p' package.json) && \
88+ pnpm i && \
89+ mkdir -p /deps && \
90+ cd /deps && \
91+ pnpm init && \
92+ pnpm add pg drizzle-orm
9793
9894COPY . .
9995
10096# run build standalone for docker version
10197RUN npm run build:docker
10298
10399# Prepare desktop export assets for Electron packaging (if generated)
104- RUN <<'EOF'
105- set -e
106- if [ -d "/app/out" ]; then
107- mkdir -p /app/apps/desktop/dist/next
108- cp -a /app/out/. /app/apps/desktop/dist/next/
109- echo "✅ Copied Next export output into /app/apps/desktop/dist/next"
110- else
111- echo "ℹ️ No Next export output found at /app/out, creating empty directory"
112- mkdir -p /app/apps/desktop/dist/next
113- fi
114- EOF
100+ RUN set -e && \
101+ if [ -d "/app/out" ]; then \
102+ mkdir -p /app/apps/desktop/dist/next && \
103+ cp -a /app/out/. /app/apps/desktop/dist/next/ && \
104+ echo "Copied Next export output into /app/apps/desktop/dist/next" ; \
105+ else \
106+ echo "No Next export output found at /app/out, creating empty directory" && \
107+ mkdir -p /app/apps/desktop/dist/next; \
108+ fi
115109
116110# # Application image, copy all the files for production
117111FROM busybox:latest AS app
@@ -138,12 +132,10 @@ COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm
138132COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js
139133COPY --from=builder /app/scripts/_shared /app/scripts/_shared
140134
141- RUN <<'EOF'
142- set -e
143- addgroup -S -g 1001 nodejs
144- adduser -D -G nodejs -H -S -h /app -u 1001 nextjs
145- chown -R nextjs:nodejs /app /etc/proxychains4.conf
146- EOF
135+ RUN set -e && \
136+ addgroup -S -g 1001 nodejs && \
137+ adduser -D -G nodejs -H -S -h /app -u 1001 nextjs && \
138+ chown -R nextjs:nodejs /app /etc/proxychains4.conf
147139
148140# # Production image, copy all the files and run next
149141FROM scratch
0 commit comments