Files
go-cv/Dockerfile
Bryan Joshua Pedini 166a2a2831 fix: correct dependencies and add Dockerfile
- Mark direct dependencies properly in go.mod (fsnotify, fpdf, goldmark)
- Remove duplicate Theme assignment in type_webserver.go
- Add Dockerfile for multi-stage build (was missing from repo)
- Update PLAN.md with completed tasks

Co-Authored-By: Claude (glm-5) <noreply@anthropic.com>
2026-03-05 02:43:34 +01:00

40 lines
860 B
Docker

# Build stage
FROM golang:1.22-alpine AS builder
WORKDIR /app
# Copy go.mod and go.sum first for caching
COPY go.mod go.sum ./
RUN go mod download
# Copy source code
COPY . .
# Build the binary with static linking
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static" -X main.APP_VERSION=${APP_VERSION:-latest} -X main.COMMIT_ID=${COMMIT_ID:-undefined}' -o gocv .
# Runtime stage
FROM alpine:latest
RUN apk --no-cache add ca-certificates tzdata
WORKDIR /app
# Copy the binary from builder
COPY --from=builder /app/gocv .
# Copy config file
COPY config.yaml .
# Create directories for content and output
RUN mkdir -p /app/content /app/output /app/themes
# Copy themes
COPY --from=builder /app/themes ./themes
# Expose default port
EXPOSE 80
# Default command runs serve mode
ENTRYPOINT ["./gocv"]
CMD ["serve"]