feat: add strapi cms

This commit is contained in:
2025-05-16 17:03:26 +00:00
parent 15d4cd5b9b
commit 65c76f225b
3 changed files with 87 additions and 73 deletions

View File

@@ -1,49 +1,66 @@
FROM node:18-alpine3.18 AS development
# 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
ARG BASE_IMAGE=node:18.20.7-alpine3.21
FROM ${BASE_IMAGE} AS development
RUN apk update \
&& apk add --no-cache \
autoconf \
automake \
bash \
build-base \
gcc \
git \
libpng-dev \
nasm \
vips-dev \
zlib-dev
ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY package.json yarn.lock ./
RUN yarn global add node-gyp
RUN yarn config set network-timeout 600000 -g && yarn install
COPY ./cms/package.json ./cms/yarn.lock ./
RUN yarn global add node-gyp \
&& yarn config set network-timeout 600000 -g \
&& yarn install
ENV PATH /opt/node_modules/.bin:$PATH
WORKDIR /opt/app
COPY . .
COPY ./cms .
RUN chown -R node:node /opt/app
USER node
RUN ["yarn", "build"]
EXPOSE 1337
CMD ["yarn", "develop"]
# Creating multi-stage build for production
FROM node:18-alpine as build
RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev vips-dev git > /dev/null 2>&1
ENV NODE_ENV=production
FROM ${BASE_IMAGE} AS build
RUN apk update \
&& apk add --no-cache \
autoconf \
automake \
build-base \
gcc \
git \
libpng-dev \
vips-dev \
zlib-dev > /dev/null 2>&1
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY package.json yarn.lock ./
RUN yarn global add node-gyp
RUN yarn config set network-timeout 600000 -g && yarn install --production
COPY ./cms/package.json ./cms/yarn.lock ./
RUN yarn global add node-gyp \
&& yarn config set network-timeout 600000 -g \
&& yarn install --production
ENV PATH /opt/node_modules/.bin:$PATH
WORKDIR /opt/app
COPY . .
RUN yarn build
# Creating final production image
FROM node:18-alpine
FROM ${BASE_IMAGE} AS production
RUN apk add --no-cache vips-dev
ENV NODE_ENV=production
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY --from=build /opt/node_modules ./node_modules
WORKDIR /opt/app
COPY --from=build /opt/app ./
ENV PATH /opt/node_modules/.bin:$PATH
RUN chown -R node:node /opt/app
USER node
EXPOSE 1337