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

无法访问 docker 上 gin 提供的本地主机

无法访问 docker 上 gin 提供的本地主机

Go
慕妹3242003 2022-07-04 16:48:03
发送Docker 版本 19.03.13,构建 4484c46d9d docker-compose 版本 1.22.0,构建 f46880fe描述我正在尝试开始使用杜松子酒。所有代码都在同一目录中,没有更多代码。码头工人-compose.ymlversion: '3'volumes:  vendor:services:  api:    build:      context: .      dockerfile: Dockerfile    volumes:      - ./src/api:/go/src/api      - vendor:/go/src/api/vendor    ports:      - 3001:3001    tty:      trueDockerfileFROM golang:latestRUN mkdir /go/src/workWORKDIR /go/src/workADD . /go/src/workRUN go get -u github.com/gin-gonic/ginRUN go run main.gomain.gopackage mainimport (    "github.com/gin-gonic/gin")func main() {    r := gin.Default()    r.GET("/ping", func(c *gin.Context) {        c.JSON(200, gin.H{            "message": "pong",        })    })    r.Run(":3001")}我访问了 localhost:3001/ping 但我得到了This site can’t be reached.$ docker-compose up       Building apiStep 1/6 : FROM golang:latest ---> 05c8f6d2538aStep 2/6 : RUN mkdir /go/src/work ---> Using cache ---> cf36db942ec5Step 3/6 : WORKDIR /go/src/work ---> Using cache ---> 42e96fcdf91eStep 4/6 : ADD . /go/src/work ---> ad489bfc861dStep 5/6 : RUN go get -u github.com/gin-gonic/gin ---> Running in 002710dc51c2Removing intermediate container 002710dc51c2 ---> ef8b0e792b6aStep 6/6 : RUN go run main.go ---> Running in afebc25d81e7[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env:   export GIN_MODE=release - using code:  gin.SetMode(gin.ReleaseMode)[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)[GIN-debug] Listening and serving HTTP on :3001我想知道如何解决?我试过了我尝试访问http://localhost:3001http://0.0.0.0:3001http://0.0.0.0:3001/ping在这些情况下我也得到了。This site can’t be reached
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

dockerfile 中的最后一条语句是错误的。它应该是一个CMD或ENTRYPOINT而不是一个RUN语句。文档位于https://docs.docker.com/engine/reference/builder/


FROM golang:latest


RUN mkdir /go/src/work

WORKDIR /go/src/work

ADD . /go/src/work


RUN go get -u github.com/gin-gonic/gin

CMD go run main.go

RUN和之间的区别在CMD这里解释:Difference between RUN and CMD in a Dockerfile


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号