mirror of
https://github.com/jakejarvis/hugo-docker.git
synced 2025-04-26 15:18:28 -04:00
also force AMD64 base image (ran into problems with Docker on Apple Silicon since there's no ARM Linux version of Hugo)
67 lines
2.6 KiB
Docker
67 lines
2.6 KiB
Docker
# Hugo doesn't require Go to run, *except* if you're using Hugo Modules. It's
|
|
# much easier to install Node on the Go base image than vice-versa.
|
|
FROM amd64/golang:1.16-alpine
|
|
|
|
# the following version can be overridden at image build time with --build-arg
|
|
ARG HUGO_VERSION=0.81.0
|
|
# remove/comment the following line completely to build with vanilla Hugo:
|
|
ARG HUGO_EXTENDED=1
|
|
|
|
LABEL version="${HUGO_VERSION}"
|
|
LABEL repository="https://github.com/jakejarvis/hugo-docker"
|
|
LABEL homepage="https://jarv.is/"
|
|
LABEL maintainer="Jake Jarvis <jake@jarv.is>"
|
|
|
|
# https://docs.github.com/en/free-pro-team@latest/packages/managing-container-images-with-github-container-registry/connecting-a-repository-to-a-container-image#connecting-a-repository-to-a-container-image-on-the-command-line
|
|
LABEL org.opencontainers.image.source https://github.com/jakejarvis/hugo-docker
|
|
|
|
# only install libc6-compat & libstdc++ if we're building extended Hugo
|
|
# https://gitlab.com/yaegashi/hugo/commit/22f0d5cbd6114210ba7835468facbdee60609aa2
|
|
RUN apk update && \
|
|
apk add --no-cache \
|
|
ca-certificates \
|
|
git \
|
|
nodejs \
|
|
npm \
|
|
yarn \
|
|
python3 \
|
|
py3-pip \
|
|
ruby \
|
|
${HUGO_EXTENDED:+libc6-compat libstdc++} && \
|
|
update-ca-certificates
|
|
|
|
# download Hugo and miscellaneous optional dependencies
|
|
RUN npm install --global postcss postcss-cli autoprefixer @babel/core @babel/cli && \
|
|
pip3 install --upgrade Pygments==2.* && \
|
|
gem install asciidoctor && \
|
|
wget https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_EXTENDED:+extended_}${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
|
wget https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_checksums.txt && \
|
|
grep hugo_${HUGO_EXTENDED:+extended_}${HUGO_VERSION}_Linux-64bit.tar.gz hugo_${HUGO_VERSION}_checksums.txt | sha256sum -c && \
|
|
tar xf hugo_${HUGO_EXTENDED:+extended_}${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
|
mv ./hugo /usr/local/bin/ && \
|
|
chmod +x /usr/local/bin/hugo && \
|
|
rm -rf hugo_* LICENSE README.md
|
|
|
|
# fix potential stack size problems on Alpine
|
|
# https://github.com/microsoft/vscode-dev-containers/blob/fb63f7e016877e13535d4116b458d8f28012e87f/containers/hugo/.devcontainer/Dockerfile#L19
|
|
RUN go get github.com/yaegashi/muslstack && \
|
|
muslstack -s 0x800000 /usr/local/bin/hugo
|
|
|
|
# verify everything's OK, exit otherwise
|
|
RUN hugo version && \
|
|
hugo env && \
|
|
postcss --version && \
|
|
autoprefixer --version && \
|
|
babel --version && \
|
|
pygmentize -V && \
|
|
asciidoctor --version
|
|
|
|
# add site source as volume
|
|
VOLUME /src
|
|
WORKDIR /src
|
|
|
|
# expose live-refresh server
|
|
EXPOSE 1313
|
|
|
|
ENTRYPOINT ["hugo"]
|