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

tech2023-12-30  73

1.运行环境

工具介绍go1.13docker环境v19.0.2golandgolang的编辑器

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.make run -p 127.0.0.1:8080:8080 dockergin #这里需要注意一定要绑定映射端口,否则无法访问。 4.docker ps #可以查看是否启用成功

5.查看服务

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

最新回复(0)