# syntax=docker/dockerfile:1.7 FROM node:22.18.0-bookworm-slim AS builder WORKDIR /app ENV CI=true \ NODE_ENV=development \ NPM_CONFIG_UPDATE_NOTIFIER=false COPY package.json package-lock.json .npmrc ./ RUN --mount=type=cache,id=medusa-builder-npm,target=/root/.npm,sharing=private \ npm ci \ --legacy-peer-deps \ --prefer-offline \ --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 \ PORT=9000 \ NPM_CONFIG_UPDATE_NOTIFIER=false COPY --from=builder /app/.medusa/server/package.json ./ COPY .npmrc ./ RUN --mount=type=cache,id=medusa-runtime-npm,target=/root/.npm,sharing=private \ npm install \ --omit=dev \ --legacy-peer-deps \ --prefer-offline \ --no-audit \ --no-fund COPY --from=builder /app/.medusa/server ./ RUN chown -R node:node /app USER node EXPOSE 9000 CMD ["npx", "medusa", "start"]