27 lines
820 B
Docker
27 lines
820 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# Stage 1: Base image.
|
|
## Start with a base image containing NodeJS so we can build Docusaurus.
|
|
FROM node:lts AS base
|
|
## Disable colour output from yarn to make logs easier to read.
|
|
ENV FORCE_COLOR=0
|
|
## Enable corepack.
|
|
RUN corepack enable
|
|
## Set the working directory to `/opt/docusaurus`.
|
|
WORKDIR /opt/docusaurus
|
|
|
|
# Stage 2b: Production build mode.
|
|
FROM base AS prod
|
|
## Set the working directory to `/opt/docusaurus`.
|
|
WORKDIR /opt/docusaurus
|
|
## Copy over the source code.
|
|
COPY . /opt/docusaurus/
|
|
## Install dependencies with `--immutable` to ensure reproducibility.
|
|
RUN npm ci
|
|
## Build the static site.
|
|
RUN npm run build
|
|
|
|
## Use a stable nginx image
|
|
FROM nginx:stable-alpine AS deploy
|
|
WORKDIR /home/node/app
|
|
COPY --chown=node:node --from=prod /opt/docusaurus/build/ /usr/share/nginx/html/ |