Spaces:
Paused
Paused
| FROM --platform=$BUILDPLATFORM docker.io/golang:1.26 AS build | |
| RUN groupadd -g 1000 woodpecker && \ | |
| useradd -u 1000 -g 1000 woodpecker && \ | |
| mkdir -p /etc/woodpecker | |
| WORKDIR /src | |
| COPY . . | |
| ARG TARGETOS TARGETARCH CI_COMMIT_SHA CI_COMMIT_TAG CI_COMMIT_BRANCH | |
| RUN --mount=type=cache,target=/root/.cache/go-build \ | |
| --mount=type=cache,target=/go/pkg \ | |
| make build-agent | |
| FROM scratch | |
| ENV GODEBUG=netdns=go | |
| # Internal setting do NOT change! Signals that woodpecker is running inside a container | |
| ENV WOODPECKER_IN_CONTAINER=true | |
| EXPOSE 3000 | |
| # copy certs from build image | |
| COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt | |
| # copy agent binary | |
| COPY --from=build /src/dist/woodpecker-agent /bin/ | |
| COPY --from=build --chown=woodpecker:woodpecker /etc/woodpecker /etc | |
| COPY --from=build /etc/passwd /etc/passwd | |
| COPY --from=build /etc/group /etc/group | |
| HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"] | |
| ENTRYPOINT ["/bin/woodpecker-agent"] | |