Update Dockerfile to optimize build process and improve image size

This commit is contained in:
Mo Tarbin 2024-09-06 01:02:25 -04:00
parent 6e5b877855
commit 7463c85ac8

View file

@ -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
# 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 the application port
EXPOSE 2021
# Command to run the application
CMD ["/donetick"]