38 lines
953 B
Docker
38 lines
953 B
Docker
# builder stage - use debian base image to avoid needing to install missing packages
|
|
FROM node:16.14.2-bullseye as builder
|
|
|
|
WORKDIR /usr/app
|
|
|
|
# disable gatsby telemetry and installing cypress binary
|
|
ENV GATSBY_TELEMETRY_DISABLED 1
|
|
ENV CYPRESS_INSTALL_BINARY 0
|
|
|
|
COPY packages/website/package.json \
|
|
packages/website/yarn.lock \
|
|
./
|
|
RUN yarn --frozen-lockfile
|
|
|
|
COPY packages/website/data ./data
|
|
COPY packages/website/src ./src
|
|
COPY packages/website/static ./static
|
|
COPY packages/website/gatsby-*.js \
|
|
packages/website/postcss.config.js \
|
|
packages/website/tailwind.config.js \
|
|
./
|
|
|
|
RUN yarn build
|
|
|
|
# main stage - use alpine base image to minimise the resulting image footprint
|
|
FROM node:16.14.2-alpine
|
|
|
|
WORKDIR /usr/app
|
|
|
|
# install http server for serving website files
|
|
RUN npm install --global http-server@14.1.0
|
|
|
|
COPY --from=builder /usr/app/public /usr/app/public
|
|
|
|
EXPOSE 9000
|
|
|
|
CMD ["http-server", "/usr/app/public", "-s -p 9000"]
|