The code and data behind xeiaso.net
1ARG GO_VERSION=1.26
2ARG ALPINE_VERSION=edge
3
4FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION}-alpine AS build
5
6ARG TARGETOS
7ARG TARGETARCH
8
9WORKDIR /app
10
11COPY go.mod go.sum ./
12RUN go mod download
13
14COPY . .
15RUN apk -U add git nodejs npm \
16 && npm ci \
17 && cd ./cmd/sponsor-panel \
18 && go generate ./...
19
20RUN --mount=type=cache,target=/root/.cache GOOS=${TARGETOS} GOARCH=${TARGETARCH} CGO_ENABLED=0 go build -ldflags="-X xeiaso.net/v4.Version=$(git describe --tags --always --dirty)" -gcflags "all=-N -l" -o /app/bin/sponsor-panel ./cmd/sponsor-panel
21
22FROM alpine:${ALPINE_VERSION} AS run
23WORKDIR /app
24
25RUN apk add --no-cache ca-certificates
26
27COPY --from=build /app/bin/sponsor-panel /app/bin/sponsor-panel
28
29EXPOSE 4823
30
31CMD ["/app/bin/sponsor-panel"]
32
33LABEL org.opencontainers.image.source="https://github.com/Xe/site"
34LABEL org.opencontainers.image.title="Sponsor Panel Service"
35LABEL org.opencontainers.image.description="Web panel for GitHub sponsors to manage their benefits"