From 7edeed1e88cf444cc8219c7764aae6af50a8d200 Mon Sep 17 00:00:00 2001 From: Pieter Hollander Date: Tue, 5 Dec 2023 17:42:56 +0100 Subject: [PATCH] Add Dockerfile. --- Dockerfile | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3166a02 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# Use buildx for multi-architecture support +FROM --platform=${BUILDPLATFORM} golang:1.21 AS builder + +WORKDIR /app + +# Copy go.mod and go.sum files to download dependencies +COPY go.mod go.sum ./ +RUN go mod download + +# Copy the source code into the container +COPY . . + +# Build the application for the specified target architecture +RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} go build -o mqtt-postgresql . + +# Create a minimal runtime image +FROM --platform=${TARGETPLATFORM} scratch + +WORKDIR /app + +# Copy the executable from the builder stage +COPY --from=builder /app/mqtt-postgresql /app/mqtt-postgresql +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ + +# Run the application +CMD ["./mqtt-postgresql"]