diff --git a/.circleci/config.yml b/.circleci/config.yml index 0ff9559365e..6a82e96b7d0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ parameters: defaults: &defaults resource_class: large docker: - - image: bepsays/ci-hugoreleaser:1.22300.20000 + - image: bepsays/ci-hugoreleaser:1.22300.20200 environment: &buildenv GOMODCACHE: /root/project/gomodcache version: 2 @@ -60,7 +60,7 @@ jobs: environment: <<: [*buildenv] docker: - - image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20000 + - image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20200 steps: - *restore-cache - &attach-workspace diff --git a/Dockerfile b/Dockerfile index afe5cf1322c..a8ac4551036 100755 --- a/Dockerfile +++ b/Dockerfile @@ -3,55 +3,76 @@ # Website: https://gohugo.io/ FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.5.0 AS xx - -FROM --platform=$BUILDPLATFORM golang:1.22.6-alpine AS build +FROM --platform=$BUILDPLATFORM golang:1.23.2-alpine AS base +FROM base AS build # Set up cross-compilation helpers COPY --from=xx / / -RUN apk add clang lld -# Optionally set HUGO_BUILD_TAGS to "extended" or "nodeploy" when building like so: -# docker build --build-arg HUGO_BUILD_TAGS=extended . -ARG HUGO_BUILD_TAGS="none" +# gcc/g++ are required to build libsass and libwebp libraries for the extended version. +RUN xx-apk add --no-scripts --no-cache gcc g++ -ARG CGO=1 -ENV CGO_ENABLED=${CGO} -ENV GOOS=linux -ENV GO111MODULE=on +# Optionally set HUGO_BUILD_TAGS to "none" or "nodeploy" when building like so: +# docker build --build-arg HUGO_BUILD_TAGS=nodeploy . +# +# We build the extended version by default. +ARG HUGO_BUILD_TAGS="extended" +ENV GOPROXY=https://proxy.golang.org +ENV GOCACHE=/root/.cache/go-build +ENV GOMODCACHE=/go/pkg/mod WORKDIR /go/src/github.com/gohugoio/hugo -RUN --mount=src=go.mod,target=go.mod \ - --mount=src=go.sum,target=go.sum \ - --mount=type=cache,target=/go/pkg/mod \ - go mod download - -ARG TARGETPLATFORM -# gcc/g++ are required to build SASS libraries for extended version -RUN xx-apk add --no-scripts --no-cache gcc g++ musl-dev git RUN --mount=target=. \ - --mount=type=cache,target=/go/pkg/mod <