# syntax=docker/dockerfile:1.7 FROM --platform=$BUILDPLATFORM golang:1.22-alpine AS builder WORKDIR /src RUN apk add --no-cache ca-certificates tzdata COPY go.mod go.sum ./ RUN go mod download COPY . . ARG TARGETOS ARG TARGETARCH RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \ go build -trimpath -ldflags='-s -w' -o /out/xteve ./xteve.go FROM alpine:3.20 RUN apk add --no-cache ca-certificates tzdata \ && addgroup -S xteve \ && adduser -S -G xteve xteve \ && mkdir -p /xteve/config \ && chown -R xteve:xteve /xteve WORKDIR /xteve COPY --from=builder /out/xteve /usr/local/bin/xteve COPY docker/entrypoint.sh /usr/local/bin/docker-entrypoint.sh USER xteve EXPOSE 34400/tcp VOLUME ["/xteve/config"] ENV XTEVE_CONFIG=/xteve/config ENV XTEVE_PORT=34400 HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \ CMD wget -qO- "http://127.0.0.1:${XTEVE_PORT}/lineup_status.json" > /dev/null || exit 1 ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]