cms/services/strapi/Dockerfile

68 lines
1.4 KiB
Docker

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 ./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 ./cms .
RUN chown -R node:node /opt/app
USER node
RUN ["yarn", "build"]
EXPOSE 1337
CMD ["yarn", "develop"]
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 ./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
FROM ${BASE_IMAGE} AS production
RUN apk add --no-cache vips-dev
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
CMD ["yarn", "start"]