快捷搜索: 王者荣耀 脱发

Windows:在docker中运行golang程序————育儿式教程

1.运行环境

工具 介绍 go 1.13 docker环境 v19.0.2 goland golang的编辑器

2.准备工作

1.编写一个go程序main.go,。
package main
import (
	"net/http"

	"github.com/gin-gonic/gin"
)
func Say(gct *gin.Context){
          
   
	gct.JSON(http.StatusOK,gin.H{
          
   
		"Title":"忍住~",
	})
}
func main() {
          
   
	//开启默认路由
	r:=gin.Default()
	r.GET("/a",Say)
	r.Run(":8080")
}
2.测试环境是否可用
#在cmd中使用以下命令
1.docker -v		#查看docker版本,检测docker是否安装成功
2.go version	#查看go版本,检测go是否安装成功

3.主要操作

1.查看本地环境
#在cmd终端或者使用goland中终端,跳转到项目路径src下
1.go env		#查看go所在环境,需要注意一下几个环境

由于本地是windows,go build 语句会因为系统环境不同生成不同的启动文件。(在windows中是.exe文件,在linux是二进制可执行文件)而我们需要的是能在docker中运行的二进制文件,所以需要暂时更改环境配置。

1.go env -w GOOS=linux		#环境所在操作系统
2.go env -w CGO_ENABLED=0		#是否开启交叉编译
2.生成所需要的main的二进制文件
#在终端/goland终端的src目录下执行一下命令
go build app/main.go

在src目录下生成一个可见main文件

3.编写DockerFile文件

在src目录下创建一个DockerFile文件,其内容如下。

FROM golang:1.12	
WORKDIR /goawesomeProject/src
ADD dockergin /dockergin	#这一步至关重要将二进制文件添加到镜像中
COPY . .
EXPOSE 8080
ENTRYPOINT [ "/dockergin" ]	#这一步在启用镜像是运行该命令

注意 dockergin指的是你在生成镜像的镜像名字!!!

4.生成dockergin镜像文件
#在终端/goland终端中到项目的src目录下运行以下命令
1.docker build . -t dockergin:latest
#查看是否生成对应镜像
2.docker images
#使用命令启动镜像
3.docker run -p 127.0.0.1:8080:8080 dockergin 	#这里需要注意一定要绑定映射端口,否则无法访问。
4.docker ps 	#可以查看是否启用成功
5.查看服务

在浏览器访问 127.0.0.1:8080/a 端口,查看是否成功实现!

经验分享 程序员 微信小程序 职场和发展