准备
先在本地把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",
})
})