diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 492f32af54127140c2abab5e252e68b28c56c4eb..d2cd938324dc87be1e3296d220853226b27b6281 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,33 +1,19 @@ -# Build stage -FROM node:21-alpine AS build - -# Build as non-root user -RUN apk update && apk upgrade && adduser -D svelteuser -USER svelteuser - +FROM node:22-alpine AS base +RUN apk update && apk upgrade && apk add dumb-init WORKDIR /app -COPY --chown=svelteuser:svelteuser package.json . -COPY --chown=svelteuser:svelteuser package-lock.json . +FROM base AS build +# Build stage +COPY package.json . +COPY package-lock.json . RUN npm install - -COPY --chown=svelteuser:svelteuser . . +COPY . . RUN npm run build # Production stage -FROM node:21-alpine - -# Install dumb-init to handle signals properly and run as non-root user -RUN apk update && apk upgrade && apk add dumb-init && adduser -D svelteuser -USER svelteuser - -WORKDIR /app - -COPY --chown=svelteuser:svelteuser --from=build /app/build /app/package.json /app/package-lock.json ./ -COPY --chown=svelteuser:svelteuser --from=build /app/node_modules /app/node_modules - +FROM base +COPY --from=build /app/build /app/package.json /app/package-lock.json ./ +COPY --from=build /app/node_modules /app/node_modules EXPOSE 8080 - ENV HOST=0.0.0.0 PORT=8080 NODE_ENV=production - CMD ["dumb-init", "node", "index.js"]