ARG NODE_VERSION=20 ARG NODE_ENV=production FROM node:${NODE_VERSION}-alpine AS deps WORKDIR /server RUN corepack enable && corepack prepare yarn@3.2.1 --activate COPY package.json yarn.lock .yarnrc.yml ./ COPY .yarn .yarn # Copy package.json files to preserve workspace structure COPY packages packages RUN yarn install --immutable FROM node:${NODE_VERSION}-alpine AS builder WORKDIR /server RUN corepack enable && corepack prepare yarn@3.2.1 --activate COPY --from=deps /server . COPY . . RUN yarn build # Build draft-order plugin admin extensions RUN cd packages/plugins/draft-order && npx medusa plugin:build FROM node:${NODE_VERSION}-alpine AS runtime WORKDIR /server RUN addgroup -g 1001 medusa && adduser -D -u 1001 -G medusa medusa RUN corepack enable && corepack prepare yarn@3.2.1 --activate COPY --from=builder --chown=medusa:medusa /server . USER medusa EXPOSE 9000 5173 HEALTHCHECK --interval=30s --timeout=10s --start-period=120s --retries=3 \ CMD wget -q --spider http://localhost:9000/health || exit 1 LABEL org.opencontainers.image.description="Medusa Commerce Platform" ENTRYPOINT [] CMD ["./start.sh"]