# syntax=docker/dockerfile:1.7 FROM node:22.18.0-bookworm-slim AS builder WORKDIR /app ENV CI=true ENV NODE_ENV=development ENV NPM_CONFIG_UPDATE_NOTIFIER=false COPY package.json .npmrc ./ RUN --mount=type=cache,target=/root/.npm,sharing=locked \ npm install --no-audit --no-fund COPY tsconfig.json medusa-config.ts ./ COPY src ./src RUN npm run build FROM node:22.18.0-bookworm-slim AS runtime WORKDIR /app ENV NODE_ENV=production ENV PORT=9000 ENV NPM_CONFIG_UPDATE_NOTIFIER=false COPY --from=builder /app/.medusa/server/package.json ./ RUN --mount=type=cache,target=/root/.npm,sharing=locked \ npm install --omit=dev --no-audit --no-fund COPY --from=builder /app/.medusa/server ./ RUN chown -R node:node /app USER node EXPOSE 9000 CMD ["npx", "medusa", "start"]