forgejo-runner

git clone git://git.lin.moe/forgejo-runner.git

 1FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/xx AS xx
 2
 3FROM --platform=$BUILDPLATFORM code.forgejo.org/oci/golang:1.23-alpine3.20 AS build-env
 4#
 5# Transparently cross compile for the target platform
 6#
 7COPY --from=xx / /
 8ARG TARGETPLATFORM
 9RUN apk --no-cache add clang lld
10RUN xx-apk --no-cache add gcc musl-dev
11RUN xx-go --wrap
12
13# Do not remove `git` here, it is required for getting runner version when executing `make build`
14RUN apk add --no-cache build-base git
15
16COPY . /srv
17WORKDIR /srv
18
19RUN make clean && make build
20
21FROM alpine:3.20
22ARG RELEASE_VERSION
23RUN apk add --no-cache git bash docker-cli
24
25COPY --from=build-env /srv/forgejo-runner /bin/forgejo-runner
26
27LABEL maintainer="contact@forgejo.org" \
28      org.opencontainers.image.authors="Forgejo" \
29      org.opencontainers.image.url="https://forgejo.org" \
30      org.opencontainers.image.documentation="https://forgejo.org/docs/latest/admin/actions/#forgejo-runner" \
31      org.opencontainers.image.source="https://code.forgejo.org/forgejo/runner" \
32      org.opencontainers.image.version="${RELEASE_VERSION}" \
33      org.opencontainers.image.vendor="Forgejo" \
34      org.opencontainers.image.licenses="MIT" \
35      org.opencontainers.image.title="Forgejo Runner" \
36      org.opencontainers.image.description="A runner for Forgejo Actions."
37
38ENV HOME=/data
39
40USER 1000:1000
41
42WORKDIR /data
43
44VOLUME ["/data"]
45
46CMD ["/bin/forgejo-runner"]