Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions templates/pnpm/cms.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# syntax=docker/dockerfile:latest
FROM node:20-alpine AS base
RUN apk add --no-cache \
build-base \
cairo-dev \
jpeg-dev \
pango-dev \
giflib-dev \
libpng-dev \
libjpeg-turbo-dev \
g++ \
python3 \
make

ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
RUN corepack prepare pnpm@9.15.1 --activate
COPY package.json pnpm-*.yaml .npmrc /app/
WORKDIR /app

FROM base AS prod-deps
COPY ./packages/cms/package.json /app/packages/cms/package.json
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
RUN pnpm deploy --filter=cms --prod /app/prune/node_modules

FROM base AS build
COPY ./packages/cms /app/packages/cms
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpm run build

FROM base
COPY --from=build --chown=node:node /app/packages/cms /app
COPY --from=prod-deps --chown=node:node /app/prune/node_modules/node_modules /app/node_modules
EXPOSE 1337
ENV NODE_ENV=production
ENTRYPOINT ["node"]
CMD ["node_modules/@strapi/strapi/bin/strapi.js", "start"]
26 changes: 26 additions & 0 deletions templates/pnpm/web.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
FROM node:22-alpine AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
RUN corepack prepare pnpm@9.15.1 --activate
# Adjust directory
COPY package.json pnpm-*.yaml /app/
WORKDIR /app

FROM base AS build
# Adjust directory
COPY ./packages/web /app/packages/web
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpm run build

FROM nginxinc/nginx-unprivileged:latest
USER root
WORKDIR /usr/app
# Adjust directory
COPY ./packages/web/nginx/default.conf /etc/nginx/conf.d/default.conf
USER nginx
# Adjust directory
COPY --from=build /app/packages/web/build /usr/share/nginx/html
EXPOSE 8080

CMD ["nginx", "-g", "daemon off;"]
33 changes: 33 additions & 0 deletions templates/yarn/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# syntax=docker/dockerfile:latest
ARG version=3.7.0
FROM dcr.bndigital.dev/library/yarn:${version} AS build
ENV NODE_OPTIONS "--max_old_space_size=6144"
COPY .yarn .yarn
COPY package.json yarn.lock .yarnrc.yml ./
COPY packages/cms/package.json packages/cms/
COPY packages/website/package.json packages/website/
RUN yarn
COPY . .
RUN yarn workspace @vertical-saas/cms run build \
&& yarn workspace @vertical-saas/website run build \
&& rm -rf packages/cms/tsconfig.json \
&& rm -rf packages/cms/src/* \
&& rm -rf packages/cms/config \
&& rm -rf packages/cms/public \
&& mv -v packages/cms/dist/* packages/cms \
&& yarn workspaces focus --production --all

## Uncomment the following lines to build a frontend-only image
#FROM dcr.bndigital.dev/library/nodejs:${version}
#WORKDIR /usr/local/src
#COPY --from=build --chown=node /usr/local/src/packages/website/build .
#ENTRYPOINT ["http-server"]
#CMD ["--proxy", "http://localhost:5000?"]

## Comment the following lines to build a frontend-only image
FROM dcr.bndigital.dev/library/nodejs:${version}
WORKDIR /usr/local/src
COPY --from=build --chown=node /usr/local/src/packages/cms .
COPY --from=build --chown=node /usr/local/src/packages/website/build public
ENTRYPOINT ["node"]
CMD ["node_modules/@strapi/strapi/bin/strapi.js", "start"]
20 changes: 20 additions & 0 deletions templates/yarn/api.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM node:20-alpine

WORKDIR /app

COPY package.json yarn.lock ./

# Change flag to --immutable if yarn v2
RUN yarn install --frozen-lockfile

COPY . .

RUN chown -R node:node /app

USER node

RUN yarn build

EXPOSE 3000

CMD ["yarn", "start"]
23 changes: 23 additions & 0 deletions templates/yarn/web.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM node:22-alpine AS base
# Adjust directory
COPY package.json yarn.lock /app/
WORKDIR /app

FROM base AS build
# Adjust directory
COPY ./packages/web /app/packages/web
# Change flag to --immutable if yarn v2
RUN yarn install --frozen-lockfile
RUN yarn build

FROM nginxinc/nginx-unprivileged:latest
USER root
WORKDIR /usr/app
# Adjust directory
COPY ./packages/web/nginx/default.conf /etc/nginx/conf.d/default.conf
USER nginx
# Adjust directory
COPY --from=build /app/packages/web/build /usr/share/nginx/html
EXPOSE 8080

CMD ["nginx", "-g", "daemon off;"]