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 并运行

相关推荐
lisanmengmeng3 分钟前
docker 方式安装部署禅道zentao(五)
运维·docker·容器
程序员老赵42 分钟前
AdguardHome Docker 容器化部署指南
docker·dns
露临霜2 小时前
Docker安装nginx
nginx·docker·容器
半桶水专家2 小时前
GORM 结构体字段标签(Struct Tags)详解
golang·go·gorm
GokuCode2 小时前
【GO高级编程】05.类的扩展与复用
golang·embedding·xcode
Tony Bai3 小时前
Jepsen 报告震动 Go 社区:NATS JetStream 会丢失已确认写入
开发语言·后端·golang
bing.shao3 小时前
Golang 之 defer 延迟函数
开发语言·后端·golang
penngo3 小时前
Golang使用Fyne开发桌面应用
开发语言·后端·golang
CAFEBABE 344 小时前
安装完docker之后怎么使用
运维·docker·容器
全靠bug跑5 小时前
Nacos 入门实战:部署、服务注册与发现全指南
java·spring cloud·docker·nacos