From 591adc6514c0fe0e8c4cff1a68fdc4b20d615f26 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Fri, 6 Sep 2024 01:02:25 -0400 Subject: Update Dockerfile to optimize build process and improve image size --- Dockerfile | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3508e96..ef46a01 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,29 @@ -FROM golang:1.22 +# Stage 1: Build the application +FROM golang:1.22 AS builder WORKDIR /usr/src/app - COPY go.mod go.sum ./ RUN go mod download && go mod verify COPY . . -RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w " -buildvcs=false -o /donetick +RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w" -buildvcs=false -o /donetick + +# Stage 2: Create a smaller runtime image +FROM alpine:latest + +# Install necessary CA certificates +RUN apk --no-cache add ca-certificates + +# Copy the binary and config folder from the builder stage +COPY --from=builder /donetick /donetick +COPY --from=builder /usr/src/app/config /config + +# Set environment variables ENV DT_ENV="selfhosted" -EXPOSE 2021 + +# Expose the application port +EXPOSE 2021 + +# Command to run the application CMD ["/donetick"] \ No newline at end of file -- cgit