Files
gochat/channels/shangwutong/Dockerfile
T
Rogeeandrogee 2b182f9956 H-300: wire Captain Skills into Web runtime (#48)
* H-300: wire Captain Skills into Web runtime

* H-300: enforce effective model and conservative skill budget

* H-300: fix CI gosec step

* ci: extend golangci-lint timeout

* fix lint findings across backend

* fix(push): resolve delivery protocol blockers

* test(repository): close SQLite test databases

* test(repository): reuse SQLite schema per package

* H-307: restore backend Go cache in CI

* H-307: prefetch modules before cold lint

* H-307: resolve govulncheck security gate

* H-307: build lint with patched Go toolchain

* H-307: clear remaining security scan findings

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 07:08:14 +08:00

32 lines
935 B
Docker

FROM golang:1.26.6-alpine AS builder
WORKDIR /src/channels/shangwutong
RUN apk add --no-cache ca-certificates git
COPY channels/shangwutong/go.mod channels/shangwutong/go.sum ./
RUN go mod download
COPY channels/shangwutong/ ./
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/shangwutong ./cmd/shangwutong
FROM alpine:3.22
RUN apk add --no-cache ca-certificates tzdata \
&& addgroup -S -g 10001 connector \
&& adduser -S -D -H -u 10001 -G connector connector \
&& mkdir -p /data /backup \
&& chown connector:connector /data /backup \
&& chmod 0700 /data /backup
COPY --from=builder /out/shangwutong /usr/local/bin/shangwutong
USER connector:connector
VOLUME ["/data", "/backup"]
EXPOSE 9100
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD wget -q -T 3 -O /dev/null http://127.0.0.1:9100/readyz || exit 1
ENTRYPOINT ["/usr/local/bin/shangwutong"]
CMD ["serve"]