docker部署go gin框架 Linux环境

目录

文章目的是什么

环境介绍

[Linux 环境下 docker 部署 go gin 详细步骤](#Linux 环境下 docker 部署 go gin 详细步骤)

[部署 gin](#部署 gin)


文章目的是什么

假设我们学习了 go 语言,在 Linux 上安装了 go 相关的程序,也能直接运行,使用以下命令:

bash 复制代码
go run main.go

假如代码是这样的:

bash 复制代码
package main
 
import "fmt"
 
func main() {
	fmt.Println("Hello World")
}

就会输出:

bash 复制代码
Hello World

但现在我们想要使用 docker 来部署,可能就有一些不同,复杂度肯定会比上面多一些。

所以本文的目的是:

使用 docker 部署 go,且可以运行 gin 框架的基础代码

环境介绍

我们开发时,基本上都是在自己电脑上,大多数应该都是 Windows,而我们项目发布上线时,一般又是使用的是 Linux,本文讲解的是 Linux 环境。

bash 复制代码
Linux:

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.9.2009 (Core)
Release:	7.9.2009
Codename:	Core

Linux 环境下 docker 部署 go gin 详细步骤

docker安装golang 我在另一个文章中有详细的讲解,因为内容比较多,建议看一下另一篇文章

docker安装golang_docker golang-CSDN博客文章浏览阅读880次。最近玩 docker 比较多,试试安装 golang。第一步:先看一下镜像;第二步:下载镜像;第三步:进一步查看 golang 是不是我们指定安装的版本;第四步:运行容器_docker golanghttps://blog.csdn.net/longfeng995/article/details/131006514?spm=1001.2014.3001.5501上面这篇文章,正好是 Linux 环境部署go,并且成功运行了一段简单的代码,所以我们这里就直接跳过 docker 部署 go 的过程,而直接进入部署 gin

[部署 gin](#部署 gin)

现在我们 Linux 环境中,创建我们的项目 demo 目录:

目录地址为:

bash 复制代码
/docker/go/project

在这个目录下,有一个项目:demo

接着再查看我们的容器:

bash 复制代码
docker ps

能看到,有一个容器正在运行,然后我们复制这个 容器ID

我们进入容器:

bash 复制代码
docker exec -it 容器ID bash

能看到,容器内,也跟我们 Linux 环境下的项目是一样的。

我们进入 demo 目录

bash 复制代码
cd demo

当前目录是没有任何文件的

第一步是要先初始化 mod,运行:

bash 复制代码
go mod init demo

能看到创建成功,我们可以切回 Linux下看看

因为挂载的关系,在容器里创建了文件、目录,在 Linux 环境里,也会创建,反之也是一样的。

接着我们再次进入容器,找到 demo 目录,下载并安装 gin

bash 复制代码
go get -u github.com/gin-gonic/gin

执行以上操作时,可能会出现错误,提示:"go: zip: not a valid zip file" 之类的错误。

我这边整理是说代理的问题,我上面使用的是阿里云代理,也很奇怪,有时候可以,有时候却会出现问题。

所以我切换成 七牛云代理。

bash 复制代码
go env -w GOPROXY=https://goproxy.cn,direct

然后我们再重新 下载安装gin 就可以了。

相关的 gin 包,我们就下载好了,一般我们敲代码都不会在容器内,所以我们需要切回 Linux 环境

我们可以先看一下,Linux 环境下,go.mod 文件的内容

然后我们创建 main.go 文件

进入 main.go 文件,粘贴以下代码

bash 复制代码
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() // listen and serve on 0.0.0.0:8080
}

然后我们进入 docker 容器,运行 go

bash 复制代码
go run main.go

可以看到,程序成功执行,端口默认的是 8080

当请求后,我们可以进入容器,查看请求记录

以上,就完成了在 Linux 环境下使用 docker 部署 go gin 并运行

相关推荐
七七&5563 小时前
2024年08月13日 Go生态洞察:Go 1.23 发布与全面深度解读
开发语言·网络·golang
java坤坤3 小时前
GoLand 项目从 0 到 1:第八天 ——GORM 命名策略陷阱与 Go 项目启动慢问题攻坚
开发语言·后端·golang
元清加油4 小时前
【Golang】:函数和包
服务器·开发语言·网络·后端·网络协议·golang
恋喵大鲤鱼6 小时前
Golang 后台技术面试套题 1
面试·golang
Agome998 小时前
Docker之自定义jkd镜像上传阿里云
阿里云·docker·容器
无能百分百8 小时前
阿里云服务器ECS安装Docker(CentOS 7.x)
docker
路多辛17 小时前
Golang database/sql 包深度解析(二):连接池实现原理
数据库·sql·golang
kgduu17 小时前
go资料汇总
golang
天上掉下来个程小白19 小时前
Docker-14.项目部署-DockerCompose
运维·docker·微服务·容器
水痕0119 小时前
gin结合minio来做文件存储
java·eureka·gin