All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 4s
155 lines
3.5 KiB
Docker
Executable File
155 lines
3.5 KiB
Docker
Executable File
FROM node:lts-alpine AS base
|
|
|
|
ARG APP_VERSION=dev
|
|
ENV APP_VERSION=${APP_VERSION}
|
|
|
|
RUN apk add --no-cache openssl && corepack enable
|
|
|
|
USER node
|
|
WORKDIR /home/node/app
|
|
|
|
COPY --chown=node:node .yarnrc.yml .
|
|
COPY --chown=node:node package.json .
|
|
COPY --chown=node:node api/package.json api/
|
|
COPY --chown=node:node web/package.json web/
|
|
COPY --chown=node:node yarn.lock .
|
|
|
|
RUN mkdir -p /home/node/.yarn/berry/index
|
|
RUN mkdir -p /home/node/.cache
|
|
|
|
RUN --mount=type=cache,target=/home/node/.yarn/berry/cache,uid=1000 \
|
|
--mount=type=cache,target=/home/node/.cache,uid=1000 \
|
|
CI=1 yarn install
|
|
|
|
COPY --chown=node:node redwood.toml .
|
|
COPY --chown=node:node graphql.config.js .
|
|
|
|
FROM base AS api_build
|
|
|
|
ARG ADDRESS_PROD
|
|
ARG ADDRESS_DEV
|
|
ARG DOMAIN
|
|
ARG API_DOMAIN
|
|
ARG MAX_HTTP_CONNECTIONS_PER_MINUTE
|
|
ARG SMTP_HOST
|
|
ARG SMTP_PORT
|
|
ARG SMTP_SECURE
|
|
ARG SMTP_USER
|
|
ARG SMTP_PASSWORD
|
|
ARG EMAIL_FROM
|
|
ARG EMAIL_TO
|
|
ARG FIRST_NAME
|
|
ARG LAST_NAME
|
|
ARG APP_VERSION
|
|
|
|
COPY --chown=node:node api api
|
|
RUN yarn rw build api
|
|
|
|
FROM api_build AS web_build_with_prerender
|
|
|
|
ARG FIRST_NAME
|
|
ARG LAST_NAME
|
|
ARG COUNTRY
|
|
ARG STATE
|
|
ARG CITY
|
|
ARG DEFAULT_THEME
|
|
ARG API_ADDRESS_PROD
|
|
ARG API_ADDRESS_DEV
|
|
ARG APP_VERSION
|
|
|
|
ENV APP_VERSION=${APP_VERSION}
|
|
|
|
COPY --chown=node:node web web
|
|
RUN yarn rw build web
|
|
|
|
FROM base AS web_build
|
|
|
|
ARG FIRST_NAME
|
|
ARG LAST_NAME
|
|
ARG COUNTRY
|
|
ARG STATE
|
|
ARG CITY
|
|
ARG DEFAULT_THEME
|
|
ARG API_ADDRESS_PROD
|
|
ARG API_ADDRESS_DEV
|
|
ARG APP_VERSION
|
|
|
|
ENV APP_VERSION=${APP_VERSION}
|
|
|
|
COPY --chown=node:node web web
|
|
RUN yarn rw build web --no-prerender
|
|
|
|
FROM node:lts-alpine AS api_serve
|
|
|
|
RUN apk add --no-cache openssl && corepack enable
|
|
|
|
RUN mkdir -p /home/node/app/api/files_prod \
|
|
&& chown -R node:node /home/node/app/api/files_prod
|
|
|
|
USER node
|
|
WORKDIR /home/node/app
|
|
|
|
COPY --chown=node:node .yarnrc.yml .
|
|
COPY --chown=node:node package.json .
|
|
COPY --chown=node:node api/package.json api/
|
|
COPY --chown=node:node yarn.lock .
|
|
|
|
RUN mkdir -p /home/node/.yarn/berry/index
|
|
RUN mkdir -p /home/node/.cache
|
|
|
|
RUN --mount=type=cache,target=/home/node/.yarn/berry/cache,uid=1000 \
|
|
--mount=type=cache,target=/home/node/.cache,uid=1000 \
|
|
CI=1 yarn workspaces focus api --production
|
|
|
|
COPY --chown=node:node redwood.toml .
|
|
COPY --chown=node:node graphql.config.js .
|
|
|
|
COPY --chown=node:node --from=api_build /home/node/app/api/dist /home/node/app/api/dist
|
|
COPY --chown=node:node --from=api_build /home/node/app/api/db /home/node/app/api/db
|
|
COPY --chown=node:node --from=api_build /home/node/app/node_modules/.prisma /home/node/app/node_modules/.prisma
|
|
|
|
ARG APP_VERSION
|
|
|
|
ENV NODE_ENV=production
|
|
ENV APP_VERSION=${APP_VERSION}
|
|
|
|
CMD [ "./api/dist/server.js" ]
|
|
|
|
FROM node:lts-alpine AS web_serve
|
|
|
|
RUN corepack enable
|
|
|
|
USER node
|
|
WORKDIR /home/node/app
|
|
|
|
COPY --chown=node:node .yarnrc.yml .
|
|
COPY --chown=node:node package.json .
|
|
COPY --chown=node:node web/package.json web/
|
|
COPY --chown=node:node yarn.lock .
|
|
|
|
RUN mkdir -p /home/node/.yarn/berry/index
|
|
RUN mkdir -p /home/node/.cache
|
|
|
|
RUN --mount=type=cache,target=/home/node/.yarn/berry/cache,uid=1000 \
|
|
--mount=type=cache,target=/home/node/.cache,uid=1000 \
|
|
CI=1 yarn workspaces focus web --production
|
|
|
|
COPY --chown=node:node redwood.toml .
|
|
COPY --chown=node:node graphql.config.js .
|
|
|
|
COPY --chown=node:node --from=web_build /home/node/app/web/dist /home/node/app/web/dist
|
|
|
|
ARG APP_VERSION
|
|
ENV APP_VERSION=${APP_VERSION}
|
|
|
|
ENV NODE_ENV=production \
|
|
API_PROXY_TARGET=http://api:8911
|
|
|
|
CMD "node_modules/.bin/rw-web-server" "--api-proxy-target" "$API_PROXY_TARGET"
|
|
|
|
FROM base AS console
|
|
|
|
COPY --chown=node:node api api
|
|
COPY --chown=node:node web web
|
|
COPY --chown=node:node scripts scripts
|