diff options
author | David Karlsson <[email protected]> | 2024-10-17 15:42:41 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2024-10-17 15:42:41 +0200 |
commit | b5852d0e685d95ce70e03ec2b4da753b82d121cf (patch) | |
tree | 736056e3e08d8d524537dea39e678f12ba1e3596 /Dockerfile | |
parent | b5801d8b6add72b3fdead267237874b3a73298ce (diff) | |
download | hugo-b5852d0e685d95ce70e03ec2b4da753b82d121cf.tar.gz hugo-b5852d0e685d95ce70e03ec2b4da753b82d121cf.zip |
docker: Fix Dart Sass ARM64 arch mismatch, /cache permissions
Also improve the final build step.
Closes #12956
Closes #12957
Closes #12960
Diffstat (limited to 'Dockerfile')
-rwxr-xr-x | Dockerfile | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/Dockerfile b/Dockerfile index 394133aed..01e82dbf4 100755 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,8 @@ # 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 @@ -45,6 +46,15 @@ RUN --mount=target=. \ 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 @@ -54,14 +64,13 @@ RUN apk add --no-cache \ 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 @@ -71,15 +80,11 @@ VOLUME /project 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. @@ -92,4 +97,3 @@ EXPOSE 1313 ENTRYPOINT ["/entrypoint.sh"] CMD ["--help"] - |