build: remove tooling from production image (#88)
This commit is contained in:
+9
-3
@@ -26,18 +26,19 @@ WORKDIR /opt/app
|
||||
COPY ./backend .
|
||||
COPY --from=backend-dependencies /opt/app/node_modules ./node_modules
|
||||
RUN npx prisma generate
|
||||
RUN npm run build && npm prune --production
|
||||
RUN npm run build && npx tsc prisma/seed/config.seed.ts --outDir dist/prisma/seed --rootDir prisma/seed && npm prune --production
|
||||
|
||||
# Stage 5: Final image
|
||||
FROM node:24-alpine AS runner
|
||||
ENV NODE_ENV=docker
|
||||
|
||||
# Delete default node user
|
||||
# Delete default node user
|
||||
RUN deluser --remove-home node
|
||||
|
||||
RUN apk update --no-cache \
|
||||
&& apk upgrade --no-cache \
|
||||
&& apk add --no-cache curl caddy su-exec openssl
|
||||
&& apk add --no-cache curl caddy su-exec openssl \
|
||||
&& rm -rf /usr/local/lib/node_modules/npm /usr/local/bin/npm /usr/local/bin/npx
|
||||
|
||||
WORKDIR /opt/app/frontend
|
||||
COPY --from=frontend-builder /opt/app/public ./public
|
||||
@@ -47,6 +48,11 @@ COPY --from=frontend-builder /opt/app/public/img /tmp/img
|
||||
|
||||
WORKDIR /opt/app/backend
|
||||
COPY --from=backend-builder /opt/app/node_modules ./node_modules
|
||||
RUN rm -rf ./node_modules/typescript \
|
||||
./node_modules/esbuild \
|
||||
./node_modules/@esbuild \
|
||||
./node_modules/.bin/tsc \
|
||||
./node_modules/.bin/esbuild
|
||||
COPY --from=backend-builder /opt/app/dist ./dist
|
||||
COPY --from=backend-builder /opt/app/prisma ./prisma
|
||||
COPY --from=backend-builder /opt/app/package.json ./
|
||||
|
||||
@@ -54,12 +54,12 @@
|
||||
"passport-jwt": "^4.0.1",
|
||||
"passport-local": "^1.0.0",
|
||||
"qrcode-svg": "^1.1.0",
|
||||
"prisma": "^6.6.0",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"rimraf": "^6.0.1",
|
||||
"rxjs": "^7.8.2",
|
||||
"serialize-javascript": "^7.0.3",
|
||||
"sharp": "^0.34.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"uuid": "^11.1.1",
|
||||
"yaml": "^2.7.1"
|
||||
},
|
||||
@@ -88,9 +88,9 @@
|
||||
"eslint-config-prettier": "^10.1.2",
|
||||
"eslint-plugin-prettier": "^5.2.6",
|
||||
"prettier": "^3.5.3",
|
||||
"prisma": "^6.6.0",
|
||||
"source-map-support": "^0.5.21",
|
||||
"ts-loader": "^9.5.2",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig-paths": "4.2.0",
|
||||
"typescript": "^5.8.3",
|
||||
"typescript-eslint": "^8.59.2",
|
||||
|
||||
@@ -19,7 +19,7 @@ fi
|
||||
PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js &
|
||||
|
||||
# Run the backend server
|
||||
cd backend && npm run prod
|
||||
cd backend && ./node_modules/.bin/prisma migrate deploy && node dist/prisma/seed/config.seed.js && node dist/src/main
|
||||
|
||||
# Wait for all processes to finish
|
||||
wait -n
|
||||
|
||||
Reference in New Issue
Block a user