who_need_help/Dockerfile.traefik

43 lines
1.6 KiB
Docker

# syntax=docker/dockerfile:1.20.0
FROM golang:1.26.5-alpine3.23@sha256:622e56dbc11a8cfe87cafa2331e9a201877271cbff918af53d3be315f3da88cc AS builder
ARG TRAEFIK_VERSION=v3.7.8
ARG TRAEFIK_SOURCE_SHA256=3a725c0ead27fa512756acd57056ec4652420a9daceaa6d9c170bfbb25bf51f9
ARG TRAEFIK_BUILD_DATE=2026-07-15_12:51:10PM
ARG GRPC_GO_VERSION=v1.82.1
ADD --checksum=sha256:3a725c0ead27fa512756acd57056ec4652420a9daceaa6d9c170bfbb25bf51f9 \
https://github.com/traefik/traefik/releases/download/v3.7.8/traefik-v3.7.8.src.tar.gz \
/tmp/traefik.tar.gz
WORKDIR /src
RUN test "$TRAEFIK_SOURCE_SHA256" = "3a725c0ead27fa512756acd57056ec4652420a9daceaa6d9c170bfbb25bf51f9" \
&& tar -xzf /tmp/traefik.tar.gz --strip-components=1 \
&& go get "google.golang.org/grpc@${GRPC_GO_VERSION}" \
&& test "$(go list -m -f '{{.Version}}' google.golang.org/grpc)" = "$GRPC_GO_VERSION" \
&& CGO_ENABLED=0 go build \
-trimpath \
-ldflags "-s -w -X github.com/traefik/traefik/v3/pkg/version.Version=${TRAEFIK_VERSION}-wnh-grpc1.82.1 -X github.com/traefik/traefik/v3/pkg/version.BuildDate=${TRAEFIK_BUILD_DATE}" \
-installsuffix nocgo \
-o /out/traefik \
./cmd/traefik
FROM alpine:3.24.1@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b AS certificates
RUN apk add --no-cache \
ca-certificates=20260611-r0 \
tzdata=2026c-r0
FROM scratch
COPY --from=certificates /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=certificates /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=builder /out/traefik /traefik
EXPOSE 80
VOLUME ["/tmp"]
ENTRYPOINT ["/traefik"]