FROM golang:1.25-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -o server ./cmd/server FROM alpine:3.19 RUN apk --no-cache add ca-certificates tzdata RUN addgroup -S app && adduser -S app -G app WORKDIR /app COPY --from=builder /app/server . COPY --from=builder /app/migrations ./migrations RUN mkdir -p /app/storage && chown -R app:app /app USER app EXPOSE 8080 CMD ["./server"]