You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.0 KiB
36 lines
1.0 KiB
FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx |
|
|
|
FROM --platform=$BUILDPLATFORM golang:1.21-alpine AS build |
|
|
|
LABEL authors="kbruen" |
|
LABEL org.opencontainers.image.source=https://github.com/dancojocaru2000/CfrTrainInfoTelegramBot |
|
|
|
RUN apk add tzdata |
|
|
|
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories |
|
RUN apk add zig@testing |
|
COPY --from=xx / / |
|
ARG TARGETPLATFORM |
|
ENV CGO_ENABLED=1 |
|
|
|
WORKDIR /app |
|
|
|
COPY go.mod . |
|
COPY go.sum . |
|
RUN go mod download |
|
|
|
COPY main.go ./ |
|
COPY pkg ./pkg/ |
|
ARG TARGETOS |
|
ARG TARGETARCH |
|
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH CGO_CFLAGS="-D_LARGEFILE64_SOURCE" CC="zig cc -target $(xx-info march)-$(xx-info os)-$(xx-info libc)" CXX="zig c++ -target $(xx-info march)-$(xx-info os)-$(xx-info libc)" go build -o server && xx-verify server |
|
|
|
FROM scratch |
|
COPY --from=build /etc/ssl/certs /etc/ssl/certs |
|
COPY --from=build /usr/share/zoneinfo /usr/share/zoneinfo |
|
WORKDIR /app |
|
# COPY static ./static/ |
|
COPY --from=build /app/server ./ |
|
|
|
ENV DEBUG=false |
|
ENTRYPOINT [ "/app/server" ]
|
|
|