Browse Source

Allow CGO in Docker build

go-sqlite3 requires cgo to work
master
Kenneth Bruen 11 months ago
parent
commit
037e7d03dc
Signed by: kbruen
GPG Key ID: C1980A470C3EE5B1
  1. 13
      Dockerfile

13
Dockerfile

@ -1,8 +1,16 @@
FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx
FROM --platform=$BUILDPLATFORM golang:1.21-alpine AS build FROM --platform=$BUILDPLATFORM golang:1.21-alpine AS build
LABEL authors="kbruen" LABEL authors="kbruen"
LABEL org.opencontainers.image.source=https://github.com/dancojocaru2000/CfrTrainInfoTelegramBot LABEL org.opencontainers.image.source=https://github.com/dancojocaru2000/CfrTrainInfoTelegramBot
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 WORKDIR /app
COPY go.mod . COPY go.mod .
@ -11,8 +19,9 @@ RUN go mod download
COPY main.go ./ COPY main.go ./
COPY pkg ./pkg/ COPY pkg ./pkg/
ARG TARGETOS TARGETARCH ARG TARGETOS
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o server 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 FROM scratch
COPY --from=build /etc/ssl/certs /etc/ssl/certs COPY --from=build /etc/ssl/certs /etc/ssl/certs

Loading…
Cancel
Save