# Dockerfile — shared-sqs multi-stage build # Updated: 2026-04-12 — Go 1.23 (required by prometheus client) FROM golang:1.23-alpine AS builder WORKDIR /build COPY go.mod go.sum ./ RUN go mod download COPY . . ARG VERSION=dev RUN CGO_ENABLED=0 go build -ldflags "-X shared-sqs/app/models.Version=${VERSION}" -o shared-sqs ./app/cmd/ FROM alpine:3.19 RUN apk --no-cache add ca-certificates COPY --from=builder /build/shared-sqs /usr/local/bin/shared-sqs COPY --from=builder /build/app/conf/goaws.yaml /conf/goaws.yaml EXPOSE 4100 # Нечувствительные значения зашиты в образ. Секреты (SHARED_SQS_ADMIN_TOKEN, REDIS_PASSWORD) — env'ом контейнера в deck. ENV REDIS_ADDR=redisk8s.4ff5678b-b683-4aef-91da-22d89dec8a25.svc.cluster.local:6379 \ REDIS_USER=default \ SHARED_SQS_SEED_DEMO=false HEALTHCHECK --interval=10s --timeout=5s --retries=3 \ CMD wget -q -O - http://localhost:4100/health || exit 1 ENTRYPOINT ["shared-sqs", "--config", "/conf/goaws.yaml"]