为了账号安全,请及时绑定邮箱和手机立即绑定

多路复用器路由器在多克化戈朗项目中不起作用

多路复用器路由器在多克化戈朗项目中不起作用

Go
白猪掌柜的 2022-09-19 21:21:29
我在当地进行了测试,它在我的本地工作完全没问题。我可以从邮政,GET方法获得响应。但是,当我对应用程序进行泊坞化并尝试测试相同的终结点时,我什么也得不到。我已经尝试了这里的所有建议 堆栈溢出.因此,我将粘贴我的泊坞文件和生成文件,以获得您对它的意见。我的泊坞文件:FROM golang:1.16.5 AS build-envRUN set -x \    && apt-get update -y \    && apt-get install -y locales \                          make \                          xz-utils \                          zip \    && rm -rf /var/lib/apt/lists/*FROM build-env AS builderWORKDIR /buildCOPY . .RUN set -x \    && makeFROM debian:buster AS runnerRUN set -x \    && apt-get update -y \    && apt-get install -y ca-certificates \    && rm -rf /var/lib/apt/lists/* \    && update-ca-certificatesCOPY --from=builder /build/bin/* .CMD ["./applicaitonx"]和我的生成文件:build:    go build -o bin/applicaitonx -v -buildmode=exe .为了能够构建泊坞,我使用以下命令;docker build -t app .然后我运行它。我看到应用程序正在运行,并且监听和serve根本没有抛出错误。但是多路复用器根本不是路由。它说它听,但它没有。我还将复制以下部分main.gosrv := &http.Server{    Handler: router,    Addr: ":" + os.Getenv("PORT"),}if err := srv.ListenAndServe(); err != nil {    log.Fatal("ListenAndServe: ", err)}我检查了所有 env 变量,因此不返回空值。我对此很确定。我写了一些调试注释,据我所知,代码甚至没有调试注释。所以它根本不会打印任何东西。os.GetEnv("PORT")
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

您可能在容器内使用的端口未暴露在外部世界,因此无法访问它们。尝试添加如下所示的标志:-p

docker run -p P1:P2

P1 = TCP 端口

P2 = 容器端口

请参考:此文档


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信