chore(web-player): tighten the container image
There was no .dockerignore, so node_modules and build/ were copied into the build context on every build. Add one, install from the lockfile with npm ci, prune the dev dependencies out of the runtime layer and run as the node user.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
node_modules
|
||||
build
|
||||
.svelte-kit
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
.git
|
||||
.github
|
||||
.claude
|
||||
.vscode
|
||||
docs
|
||||
*.md
|
||||
@@ -2,16 +2,17 @@
|
||||
FROM node:22-alpine AS build
|
||||
WORKDIR /src
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm install
|
||||
RUN npm ci
|
||||
COPY . .
|
||||
RUN npm run build
|
||||
RUN npm run build && npm prune --omit=dev
|
||||
|
||||
FROM node:22-alpine AS runtime
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
ENV PORT=3000
|
||||
COPY --from=build /src/build ./build
|
||||
COPY --from=build /src/node_modules ./node_modules
|
||||
COPY --from=build /src/package.json ./package.json
|
||||
USER node
|
||||
EXPOSE 3000
|
||||
ENV PORT=3000
|
||||
CMD ["node", "build/index.js"]
|
||||
|
||||
Reference in New Issue
Block a user