# Website: https://gohugo.io/
ARG GO_VERSION="1.23.2"
-ARG ALPINE_VERSION=3.20
+ARG ALPINE_VERSION="3.20"
+ARG DART_SASS_VERSION="1.79.3"
FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.5.0 AS xx
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS gobuild
xx-verify /usr/bin/hugo
EOT
+# dart-sass downloads the dart-sass runtime dependency
+FROM alpine:${ALPINE_VERSION} AS dart-sass
+ARG TARGETARCH
+ARG DART_SASS_VERSION
+ARG DART_ARCH=${TARGETARCH/amd64/x64}
+WORKDIR /out
+ADD https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-${DART_ARCH}.tar.gz .
+RUN tar -xf dart-sass-${DART_SASS_VERSION}-linux-${DART_ARCH}.tar.gz
+
FROM gorun AS final
COPY --from=build /usr/bin/hugo /usr/bin/hugo
libc6-compat \
git \
runuser \
- curl \
nodejs \
npm
-RUN mkdir -p /var/hugo/bin && \
+RUN mkdir -p /var/hugo/bin /cache && \
addgroup -Sg 1000 hugo && \
adduser -Sg hugo -u 1000 -h /var/hugo hugo && \
- chown -R hugo: /var/hugo && \
+ chown -R hugo: /var/hugo /cache && \
# For the Hugo's Git integration to work.
runuser -u hugo -- git config --global --add safe.directory /project && \
# See https://github.com/gohugoio/hugo/issues/9810
WORKDIR /project
USER hugo:hugo
ENV HUGO_CACHEDIR=/cache
-ARG BUILDARCH
-ENV BUILDARCH=${BUILDARCH}
ENV PATH="/var/hugo/bin:$PATH"
-COPY scripts/docker scripts/docker
COPY scripts/docker/entrypoint.sh /entrypoint.sh
+COPY --link --from=dart-sass /out/dart-sass /var/hugo/bin/dart-sass
-# Install default dependencies.
-RUN scripts/docker/install_runtimedeps_default.sh
# Update PATH to reflect the new dependencies.
# For more complex setups, we should probably find a way to
# delegate this to the script itself, but this will have to do for now.
ENTRYPOINT ["/entrypoint.sh"]
CMD ["--help"]
-
+++ /dev/null
-#!/bin/sh
-
-set -ex
-
-export DART_SASS_VERSION=1.79.3
-
-# If $BUILDARCH=arm64, then we need to install the arm64 version of Dart Sass,
-# otherwise we install the x64 version.
-ARCH="x64"
-if [ "$BUILDARCH" = "arm64" ]; then
- ARCH="arm64"
-fi
-
-cd /tmp
-curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-${ARCH}.tar.gz
-ls -ltr
-tar -xf dart-sass-${DART_SASS_VERSION}-linux-${ARCH}.tar.gz
-rm dart-sass-${DART_SASS_VERSION}-linux-${ARCH}.tar.gz && \
-# The dart-sass folder is added to the PATH by the caller.
-mv dart-sass /var/hugo/bin
\ No newline at end of file