Envs
码头版本19.03.13,构建4484c46d9d
docker-编写版本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:
trueDockerfile
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.gomain.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。
发布于 2020-09-30 06:52:53
您的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.goRUN和CMD的区别在这里解释:Difference between RUN and CMD in a Dockerfile
https://stackoverflow.com/questions/64132207
复制相似问题