一、基础环境安装与初始化
# 手动执行步骤 yum install go -y # 将go代码拷贝进入机器 # 初始化go项目 [root@moban test]# pwd /root/test # 下载模块 [root@moban test]# go mod init test go: creating new go.mod: module test go: to add module requirements and sums: go mod tidy
[root@moban test]# cat main.go package main import ( "net/http" "github.com/gin-gonic/gin" ) func statusOKHandler(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"status": "success~welcome to study"}) } func versionHandler(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"version": "v1.1 版本"}) } func main() { router := gin.New() router.Use(gin.Recovery()) router.GET("/", statusOKHandler) router.GET("/version", versionHandler) router.Run(":8080") }View Code
# 由于go访问都是国外网址,需要设置代理 [root@moban test]# go env -w GOPROXY=https://goproxy.cn,direct [root@moban test]# go mod tidy go: finding module for package github.com/gin-gonic/gin go: downloading github.com/gin-gonic/gin v1.8.2 .... # 构建源码 [root@moban test]# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o k8s-demo main.go [root@moban test]# ll 总用量 9912 -rw-r--r-- 1 root root 987 2月 15 10:23 go.mod -rw-r--r-- 1 root root 8620 2月 15 10:23 go.sum -rwxr-xr-x 1 root root 10129011 2月 15 10:24 k8s-demo -rw-r--r-- 1 root root 466 2月 15 10:18 main.go
二、编写dockerfile文件
[root@moban test]# cat dockerfile FROM alpine WORKDIR /data/app ADD k8s-demo /data/app/ CMD ["/bin/sh","-c","./k8s-demo"] [root@moban test]# docker build -t "go-test" . Sending build context to Docker daemon 10.14MB Step 1/4 : FROM alpine latest: Pulling from library/alpine 63b65145d645: Pull complete Digest: sha256:69665d02cb32192e52e07644d76bc6f25abeb5410edc1c7a81a10ba3f0efb90a Status: Downloaded newer image for alpine:latest ---> b2aa39c304c2 Step 2/4 : WORKDIR /data/app ---> Running in 2fe4717922e2 Removing intermediate container 2fe4717922e2 ---> fa1f50d47552 Step 3/4 : ADD k8s-demo /data/app/ ---> 132cba444301 Step 4/4 : CMD ["/bin/sh","-c","./k8s-demo"] ---> Running in 0852c02add23 Removing intermediate container 0852c02add23 ---> 892024d4c9d4 Successfully built 892024d4c9d4 Successfully tagged go-test:latest [root@moban test]# docker run -di --name go -p 30180:8080 go-test:latest a4cddbaad8a38cdd536965ec24d17351424a808eed6754ca147158b923644334 [root@moban test]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a4cddbaad8a3 go-test:latest "/bin/sh -c ./k8s-de…" 25 seconds ago Up 24 seconds 0.0.0.0:30180->8080/tcp, :::30180->8080/tcp go http://192.168.10.30:30180/ {"status":"success~welcome to study"} http://192.168.10.30:30180/version {"version":"v1.1 版本"}
标签:moban,--,root,test,go,gin,Go,镜像,dockerfile From: https://www.cnblogs.com/yangmeichong/p/17121927.html