如何解决无法访问docker上gin所提供的localhost无法访问此站点
Envs
Docker版本19.03.13,内部版本4484c46d9d
docker-compose版本1.22.0,构建f46880fe
说明
我正在尝试开始杜松子酒。
所有代码都在同一目录中,没有更多的代码。
docker-compose.yml
version: '3'
volumes:
vendor:
services:
api:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./src/api:/go/src/api
- vendor:/go/src/api/vendor
ports:
- 3001:3001
tty:
true
Dockerfile
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
RUN go run main.go
main.go
package main
import (
"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 api
Step 1/6 : FROM golang:latest
---> 05c8f6d2538a
Step 2/6 : RUN mkdir /go/src/work
---> Using cache
---> cf36db942ec5
Step 3/6 : workdir /go/src/work
---> Using cache
---> 42e96fcdf91e
Step 4/6 : ADD . /go/src/work
---> ad489bfc861d
Step 5/6 : RUN go get -u github.com/gin-gonic/gin
---> Running in 002710dc51c2
Removing intermediate container 002710dc51c2
---> ef8b0e792b6a
Step 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:3001
http://0.0.0.0:3001
http://0.0.0.0:3001/ping
在这些情况下,我也有This site can’t be reached
。
解决方法
您的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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。