fp/d.strapi.dockerfile

38 lines
985 B
Docker

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"]