Docker运行gin项目(go mod)

简介: Docker运行gin项目(go mod)

准备


先在本地把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 .

20210622232116654.png

执行成功如下图

20210622232314699.png

运行


运行指定镜像容器

docker run --publish 8088:8080 --name gin-demo --rm gin-demo

image.png

访问运行的服务,成功访问

image.png


用于测试的gin接口代码

e.GET("/ping", func(c *gin.Context) {
  c.JSON(200, gin.H{
    "message": "pong-post",
  })
})
目录
相关文章
|
14天前
|
JSON 运维 Go
Go 项目配置文件的定义和读取
Go 项目配置文件的定义和读取
|
14天前
|
安全 Go Docker
Go服务Docker Pod不断重启排查和解决
该文章分享了Go服务在Docker Pod中不断重启的问题排查过程和解决方案,识别出并发写map导致fatal error的问题,并提供了使用sync.Map或concurrent-map库作为并发安全的替代方案。
15 4
|
15天前
|
API
企业项目迁移go-zero实战(二)
企业项目迁移go-zero实战(二)
|
2天前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
9天前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
12天前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
14天前
|
运维 Shell Go
构建 Go 应用 docker 镜像的十八种姿势
构建 Go 应用 docker 镜像的十八种姿势
|
15天前
|
Kubernetes API Go
企业项目迁移go-zero实战(一)
企业项目迁移go-zero实战(一)
|
15天前
|
存储 Prometheus 中间件
2020最佳人气项目之Go Web框架
2020最佳人气项目之Go Web框架
|
15天前
|
Java Go API
我用go-zero开发了第一个线上项目
我用go-zero开发了第一个线上项目
下一篇
DDNS