go项目部署docker-alpine(2)使用DockerFile,创建镜像
首先是下载golang镜像
这里就不推荐下载那个版本了。
如果直接
docker pull golang
就是最新的版本,很大接近1G
dockerfile创建后就跑远了
所以非常推荐(1.19.5-alpine3.17)
就是alpine版本,小和安全
首先用goland创建一个简单的项目
使用gin框架创建一个http服务器。
gin是非常好学的一个框架
package main
import (
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"net/http"
"time"
)
var LocalAddr = "0.0.0.0:8090"
func healthCheck(ctx *gin.Context) {
ctx.JSON(http.StatusOK, gin.H{
"health": "ok",
})
}
func StartHttpServer() {
var route = gin.New()
mwCORS := cors.New(cors.Config{
//准许跨域请求网站,多个使用,分开,限制使用*
AllowOrigins: []string{"*"},
//准许使用的请求方式
AllowMethods: []string{"PUT", "PATCH", "POST", "GET", "DELETE"},
//准许使用的请求表头
AllowHeaders: []string{"Origin", "Authorization", "Content-Type"},
//显示的请求表头
ExposeHeaders: []string{"Content-Type"},
//凭证共享,确定共享
AllowCredentials: true,
//容许跨域的原点网站,可以直接return true就万事大吉了
AllowOriginFunc: func(origin string) bool {
return true
},
//超时时间设定
MaxAge: 24 * time.Hour,
})
gin.SetMode(gin.ReleaseMode)
route.Use(mwCORS)
route.GET("/health", healthCheck)
s := &http.Server{
Addr: LocalAddr,
Handler: route,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
err := s.ListenAndServe()
if err != nil {
return
}
}
func main() {
StartHttpServer()
}
然后在根目录下(就是项目开始的地方)创建DockerFile
来源于那个镜像
FROM golang:1.19.5-alpine3.16
WORKDIR /usr/src/app
#修改源
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY= https://goproxy.cn ,direct
#先拷贝项目依赖文件
COPY go.mod go.sum ./
RUN go mod download && go mod verify
#再拷贝项目文件
COPY . .
RUN go build ginServer.go
#打开端口
EXPOSE 8090
ENTRYPOINT ["./ginServer"]
在目录下
docker build .
如果build成功会回显build的ID值
docker image ls
(取名字全是小写,如果要分开是下划线)
docker tag ID name
如果在liunx中可以使用-d(在后台运行)
docker run -p 8090:8090 --name=name ID(tag)
然后就是打包镜像
完整路径不是相对路径
docker save ID -o E:\dockerfile\mygin.tar
然后上传到liunx主机上,xshell,xftp
pwd 查看当前路径
docker load -i /home/sisterofdc/mygin.tar
然后就是一层又一层的加载
重新tag,run
然后centos上打开端口(如果是测试环境,就直接关防火墙吧)
firewall-cmd --zone=public --add-port=8090/tcp --permanent
成功有回显
firewall-cmd --reload
最后连接
如果是docker yaml 文件
docker-compose up
浙公网安备 33010602011771号