30 lines
856 B
Docker
30 lines
856 B
Docker
# use Ruby as the foundation since Jekyll needs it
|
|
# Alpine to keep the container a bit lighter
|
|
FROM ruby:3-alpine AS builder
|
|
LABEL stage=milksad-website-builder
|
|
|
|
# install necessary system dependencies for Jekyll and plugins
|
|
RUN apk update && \
|
|
apk add g++ make imagemagick imagemagick-dev imagemagick-libs && \
|
|
rm -rf /var/cache/apk/*
|
|
|
|
RUN mkdir -p /home
|
|
# also creates user directory
|
|
RUN adduser -D builder
|
|
USER builder
|
|
RUN mkdir -p /home/builder/workdir
|
|
WORKDIR /home/builder/workdir
|
|
|
|
# copy the Jekyll website contents into the container
|
|
# this includes Gemfile and Gemfile.lock
|
|
# reminder: .dockerignore should specify a good ignorelist for this
|
|
COPY --chown=builder . .
|
|
|
|
# install Gems
|
|
RUN bundle install
|
|
|
|
# do the initial website build
|
|
RUN jekyll build
|
|
|
|
# note: this Dockerfile is no longer responsible for serving the content to end users
|