准备
先在本地把golang的docker镜像拉取下来
docker pull golang
Dockerfile文件内容
在gin项目根目录下创建Dockerfile配置文件
# 指定基础镜像 FROM golang # 维护人信息 MAINTAINER lauwen "me@lauwen***.com" # 工作目录,即执行go命令的目录 WORKDIR $GOPATH/src/gin # 将本地内容添加到镜像指定目录 ADD . $GOPATH/src/gin # 设置开启go mod RUN go env -w GO111MODULE=auto # 设置go代理 RUN go env -w GOPROXY=https://goproxy.cn,direct # 构建go应用 RUN go build -mod=mod main.go # 指定镜像内部服务监听的端口 EXPOSE 8080 # 镜像默认入口命令,即go编译后的可执行文件 ENTRYPOINT ["./main"]
构建gin项目的镜像文件
执行以下docker build命令构建镜像
docker build -t gin-demo .
执行成功如下图
运行
运行指定镜像容器
docker run --publish 8088:8080 --name gin-demo --rm gin-demo
访问运行的服务,成功访问
附
用于测试的gin接口代码
e.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong-post", }) })