76b50fec84
Named volume mounted root-owned over the app user's chown, so every PDF (orçamento, fatura, download) failed with 500. Entrypoint now fixes ownership on container start and drops to the app user. feat(dashboard): decouple pipeline state from period filter Status counts and recent OTs no longer disappear when an open order was created before the selected period window. feat(workorders): add vehicle/total columns, deadline urgency colors, on-time delivery saldo and efficiency metric, plate search Expose completed_at from wo_status_log so the frontend can compare actual completion date against the deadline. Add "Eficiência de Entrega" metric to Dashboard and Reports. feat(reports): add dedicated vehicle service history report New page with per-vehicle summary (OT count, total spent, last visit) and full itemized service history with print output. chore: relabel OT status "Concluir OT" -> "Concluída" and "Iniciar Trabalho" -> "Em Progresso" (action buttons unchanged) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
19 lines
572 B
Docker
19 lines
572 B
Docker
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 su-exec
|
|
RUN addgroup -S app && adduser -S app -G app
|
|
WORKDIR /app
|
|
COPY --from=builder /app/server .
|
|
COPY --from=builder /app/migrations ./migrations
|
|
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
|
RUN mkdir -p /app/storage && chown -R app:app /app && chmod +x /docker-entrypoint.sh
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
CMD ["./server"]
|