Redis client had a 35s worst-case stall (10s read/write timeout x3 retries) on a single call, which under concurrent load exhausted the connection pool and cascaded into a full outage. Timeouts and retries are now tight enough that a degraded Redis fails fast instead of tying up pooled connections. Also fixes two userid/appuserid column mix-ups in delivery queries (deliveryController.go, domain/delivery.go) and points the Dockerfile build at main.go explicitly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
25 lines
478 B
Docker
25 lines
478 B
Docker
# First Stage
|
|
FROM golang:1.24
|
|
|
|
RUN mkdir /app
|
|
ADD . /app/
|
|
WORKDIR /app
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o server main.go
|
|
|
|
# Second Stage
|
|
FROM alpine
|
|
|
|
# Fix: Alpine needs ca-certificates to verify Google API SSL certificates
|
|
RUN apk add --no-cache ca-certificates
|
|
|
|
# Copy from first stage
|
|
COPY --from=0 /app/server /app/server
|
|
COPY nearle-gear-firebase-adminsdk-l9oha-23ca3b3609.json /app/
|
|
|
|
WORKDIR /app
|
|
|
|
# Default startup command
|
|
CMD ["./server"]
|
|
|
|
|