FROM golang:1.22-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:latest WORKDIR /app RUN adduser -D -u 1000 appuser COPY --from=builder /app/server . COPY --from=builder /app/web ./web RUN mkdir -p /app/data && chown -R appuser:appuser /app USER appuser EXPOSE 8080 ENV PORT=8080 CMD ["./server"]