FROM node:20 AS base # Installing libvips-dev for sharp Compatibility # RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev nasm bash vips-dev git RUN corepack enable ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" ARG NODE_ENV=development ENV NODE_ENV=${NODE_ENV} EXPOSE 1339 ENTRYPOINT ["pnpm"] FROM base AS build RUN mkdir -p /prod/strapi WORKDIR /opt/ COPY ./packages/strapi/package.json ./packages/strapi/pnpm-lock.yaml ./ RUN pnpm fetch RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install -g node-gyp RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile ENV PATH /opt/node_modules/.bin:$PATH WORKDIR /opt/app COPY ./packages/strapi/. . RUN pnpm -r build RUN pnpm deploy --filter=strapi /prod/strapi FROM build AS dev CMD ["run", "develop"] FROM base AS strapi WORKDIR /opt/app RUN chown -R node:node /opt/app USER node COPY --from=build /prod/strapi . RUN ls -la . ENTRYPOINT ["pnpm", "start"]