Skip to content

Commit c80aae2

Browse files
authored
Merge pull request #2553 from dgageot/speed-up-pr-image-builds
speed up PR image builds
2 parents 92d8cd6 + 8bd7a2c commit c80aae2

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,12 @@ jobs:
100100
platforms: linux/amd64,linux/arm64
101101
push: false
102102
sbom: false
103+
provenance: false
103104
build-args: |
104105
GIT_TAG=pr
105106
GIT_COMMIT=dev
106107
cache-from: type=gha,scope=buildx
107-
cache-to: type=gha,mode=max,scope=buildx
108+
cache-to: type=gha,mode=min,scope=buildx
108109

109110
build-and-push-image:
110111
if: github.event_name != 'pull_request'

Dockerfile

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,25 @@ RUN --mount=type=cache,target=/go/pkg/mod \
2020
go mod download
2121
ENV CGO_ENABLED=1
2222

23-
FROM builder-base AS builder
23+
FROM builder-base AS builder-linux
24+
ARG TARGETPLATFORM
25+
ARG TARGETOS
26+
ARG TARGETARCH
27+
RUN --mount=type=cache,target=/var/cache/apk,id=apk-$TARGETPLATFORM,sharing=locked \
28+
xx-apk add musl-dev
29+
COPY . ./
30+
ARG GIT_TAG
31+
ARG GIT_COMMIT
32+
RUN --mount=type=cache,target=/root/.cache/go-build,id=go-build-$TARGETPLATFORM \
33+
--mount=type=cache,target=/go/pkg/mod <<EOT
34+
set -ex
35+
test "$TARGETOS" = "linux"
36+
export XX_GO_PREFER_C_COMPILER=zig
37+
xx-go build -trimpath -tags no_audio -ldflags "-s -w -linkmode=external -X 'github.com/docker/docker-agent/pkg/version.Version=$GIT_TAG' -X 'github.com/docker/docker-agent/pkg/version.Commit=$GIT_COMMIT'" -o /binaries/docker-agent-$TARGETOS-$TARGETARCH .
38+
xx-verify --static /binaries/docker-agent-$TARGETOS-$TARGETARCH
39+
EOT
40+
41+
FROM builder-base AS builder-cross
2442
ARG TARGETPLATFORM
2543
ARG TARGETOS
2644
ARG TARGETARCH
@@ -45,10 +63,10 @@ EOT
4563

4664
FROM scratch AS local
4765
ARG TARGETOS TARGETARCH
48-
COPY --from=builder /binaries/docker-agent-$TARGETOS-$TARGETARCH* docker-agent
66+
COPY --from=builder-cross /binaries/docker-agent-$TARGETOS-$TARGETARCH* docker-agent
4967

5068
FROM scratch AS cross
51-
COPY --from=builder /binaries .
69+
COPY --from=builder-cross /binaries .
5270

5371
FROM alpine:${ALPINE_VERSION}
5472
RUN apk add --no-cache ca-certificates docker-cli && \
@@ -58,7 +76,7 @@ ARG TARGETOS TARGETARCH
5876
ENV DOCKER_MCP_IN_CONTAINER=1
5977
ENV TERM=xterm-256color
6078
COPY --from=docker/mcp-gateway:v2 /docker-mcp /usr/local/lib/docker/cli-plugins/
61-
COPY --from=builder /binaries/docker-agent-$TARGETOS-$TARGETARCH /docker-agent
79+
COPY --from=builder-linux /binaries/docker-agent-$TARGETOS-$TARGETARCH /docker-agent
6280
USER docker-agent
6381
WORKDIR /work
6482
ENTRYPOINT ["/docker-agent"]

0 commit comments

Comments
 (0)