开门见山。我一直在尝试在 docker 容器中移动一些微服务。为简单起见,假设您在同一台机器上有两个微服务,分别称为 A 和 B。这两个微服务都使用 gRPC。微服务 A 想要在 B 中调用一个过程。B 在一个 docker 容器中,它在 A 运行的同一台机器上,但不在容器中。当 A 调用一个过程时,我得到rpcerror: code = Unavailable desc = connection closed.
我已经启动了 B: docker run -it -p 51001:51001 B
这是 Dockerfile
FROM golang as builder
WORKDIR /go/src/b
RUN \
git clone bla bla bla bla /go/src/b \
&& GOOS=linux GOARCH=amd64 \
go get && CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' -o main .
FROM alpine:latest
RUN apk --no-cache add ca-certificates && apk add --update bash
WORKDIR /root/
COPY --from=builder /go/src/b/main .
COPY --from=builder /go/src/b/.env .
EXPOSE 51001
CMD ["./main"]
我检查了端口,容器内部和主机上的一切看起来都很好。
我的主机附带 MacOS。
在没有容器的情况下启动时,一切正常。所以它与 docker、grpc 与 docker、一些网络的东西有关,或者它甚至可能是 42 ......不知道。有人吗?
如果您需要其他信息,请询问。
斯蒂芬大帝
炎炎设计
MYYA
随时随地看视频慕课网APP
相关分类