50 lines
1.2 KiB
Docker
50 lines
1.2 KiB
Docker
# Credit to Julien Guyomard (https://github.com/jguyomard). This Dockerfile
|
|
# is essentially based on his Dockerfile at
|
|
# https://github.com/jguyomard/docker-hugo/blob/master/Dockerfile. The only significant
|
|
# change is that the Hugo version is now an overridable argument rather than a fixed
|
|
# environment variable.
|
|
|
|
FROM docker.io/library/golang:1.23.0-alpine3.20
|
|
|
|
RUN apk add --no-cache \
|
|
curl \
|
|
gcc \
|
|
g++ \
|
|
musl-dev \
|
|
build-base \
|
|
libc6-compat
|
|
|
|
ARG HUGO_VERSION
|
|
|
|
RUN mkdir $HOME/src && \
|
|
cd $HOME/src && \
|
|
curl -L https://github.com/gohugoio/hugo/archive/refs/tags/v${HUGO_VERSION}.tar.gz | tar -xz && \
|
|
cd "hugo-${HUGO_VERSION}" && \
|
|
go install --tags extended
|
|
|
|
FROM docker.io/library/golang:1.23.0-alpine3.20
|
|
|
|
RUN apk add --no-cache \
|
|
runuser \
|
|
git \
|
|
gcompat \
|
|
openssh-client \
|
|
rsync \
|
|
npm
|
|
|
|
RUN mkdir -p /var/hugo && \
|
|
addgroup -Sg 1000 hugo && \
|
|
adduser -Sg hugo -u 1000 -h /var/hugo hugo && \
|
|
chown -R hugo: /var/hugo && \
|
|
runuser -u hugo -- git config --global --add safe.directory /src
|
|
|
|
COPY --from=0 /go/bin/hugo /usr/local/bin/hugo
|
|
|
|
WORKDIR /src
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
|
|
USER hugo:hugo
|
|
|
|
EXPOSE 1313
|