FROM golang:1.17-alpine as builder
ENV GOPRIVATE=github.com/XXXXX/
ARG GITHUB_TOKEN=$GITHUB_TOKEN
RUN apk update && apk add git gcc g++ libc-dev librdkafka-dev pkgconf && mkdir /app && git config --global url."https://someusername:$GITHUB_TOKEN@github.com".insteadOf "https://github.com"
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY ./ /app
RUN go build -tags dynamic
FROM alpine:3.1
RUN addgroup -S app && \
apk add --no-cache librdkafka-dev
RUN mkdir /logs && mkdir /app
WORKDIR /app
USER app
EXPOSE 8000 8001 8002
CMD ["./main"]
Run Code Online (Sandbox Code Playgroud)
致命:无法读取“https://github.com”的用户名:终端提示已禁用确认输入的导入路径正确。如果这是私有存储库,请参阅https://golang.org/doc/faq#git_https了解更多信息。
知道如何在 docker …
我对卡夫卡还很陌生,当我向生产者推送价值时收到此消息
func Produce(topic string, key string, message interface{}) {
headers := map[string][]byte{
MSG_HEADER_KEY_CORRELATIONID: []byte("1234"),
MSG_HEADER_KEY_REQUESTID: []byte(uuid.NewString()),
MSG_HEADER_KEY_TESTID: []byte("456"),
MSG_HEADER_KEY_MESSAGETYPE: []byte("TestLookupRequest"),
}
kheaders := make([]kafka.Header, 0, len(headers))
for k, v := range headers {
kheaders = append(kheaders, kafka.Header{Key: k, Value: v})
}
var err error
servers := "XXXXXX"
protocol := "SASL_SSL"
mechanisms := "PLAIN"
username := "XXXXXXX"
password := "XXXXXXX"
Producer, err = kafka.NewProducer(&kafka.ConfigMap{
"bootstrap.servers": servers,
"security.protocol": protocol,
"sasl.username": username,
"sasl.password": password,
"sasl.mechanism": mechanisms,
})
if err != nil {
panic(err) …Run Code Online (Sandbox Code Playgroud)