From ef04a09ec6ead9faeec535b64eaaf5770ed16ee1 Mon Sep 17 00:00:00 2001 From: halalala222 <1741196223@qq.com> Date: Sun, 4 Aug 2024 13:57:08 +0800 Subject: [PATCH] feat: use docker multi-stage build to eliminate dependencies on external environments --- docker/Dockerfile | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 71fa8a5..5c5bcd1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,9 +1,25 @@ -FROM ubuntu:18.04 +FROM golang:alpine as go-builder + +RUN go env -w CGO_ENABLED=0 + +WORKDIR /build + +COPY go.mod go.sum ./ + +RUN go mod download + +COPY . . + +RUN go build -trimpath -ldflags '-extldflags "-static -fpic" -s -w' -o ./flydb-server cmd/server/cli/flydb-server.go + +FROM alpine:latest WORKDIR /app -COPY bin/flydb-server /app/flydb-server +COPY --from=go-builder /build/flydb-server /app/flydb-server RUN chmod +x /app/flydb-server -CMD ["/app/flydb-server"] +EXPOSE 8999 + +ENTRYPOINT ["/app/flydb-server"]