diff options
author | Mo Tarbin <mhed.t91@gmail.com> | 2024-09-06 01:02:25 -0400 |
---|---|---|
committer | Mo Tarbin <mhed.t91@gmail.com> | 2024-09-06 01:02:25 -0400 |
commit | 7463c85ac89608b73887f278f75151d24a590528 (patch) | |
tree | 620e5ab0f5d1de2206b82372b3972a90e0e44a4c /Dockerfile | |
parent | 6e5b877855c22644e777cbde9894f4ebf7c79532 (diff) | |
download | donetick-7463c85ac89608b73887f278f75151d24a590528.tar.gz donetick-7463c85ac89608b73887f278f75151d24a590528.tar.bz2 donetick-7463c85ac89608b73887f278f75151d24a590528.zip |
Update Dockerfile to optimize build process and improve image size
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 24 |
1 files changed, 20 insertions, 4 deletions
@@ -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 |