栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

go项目部署到腾讯云的docker上

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go项目部署到腾讯云的docker上

因为我部署的是一个简单的Gin框架的web程序,所以确保腾讯云的端口是打开的,默认是不打开的,要通过腾讯云官网打开。

1 部署方式一

将go程序打包到腾讯云编译。

1.1 创建一个工程
helloDocker
├── Dockerfile
├── go.mod
├── go.sum
└── main.go
1.2 创建main.go

main.go

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	// 1.创建路由
	r := gin.Default()
	// 2.绑定路由规则,执行的函数
	// gin.Context,封装了request和response
	r.GET("/hello", func(c *gin.Context) {
		c.JSON(200, gin.H{"msg": "hello docker!", "status": 200})
	})
	// 3.监听端口,默认在8080
	// Run("里面不指定端口号默认为8080")
	r.Run(":8000")
}

1.3 创建Dockerfile

Dockerfile

FROM golang:1.16.6-alpine

#创建文件夹
RUN mkdir /app

#将Dockerfile 中的文件存储到/app下
ADD . /app

# 设置工作目录
WORKDIR /app

ENV GO111MODULE=on
ENV GOPROXY="https://goproxy.io"
# 因为已经是在 /app下了,所以使用  ./
RUN go build -o main ./main.go

# 暴露的端口
EXPOSE 8000
 
#设置容器的启动命令,CMD是设置容器的启动指令
CMD /app/main

1.4 创建镜像

构建镜像,docker build . 别忘记加 . 代表当前目录

hello_docker是镜像名称,不可以有大写

docker build -t hello_docker . 


查看镜像:

docker image ls

启动镜像,启动后该镜像变成容器,-d是后台

docker run -d -p 8000:8000 hello_docker

访问

http://121.4.24.50:8000/hello

1 部署方式二

将go程序本地编译后上传。
首先在本地编译成Linux平台运行的可执行文件。这样的打包方式占用的文件是很小的

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
helloGo
├── Dockerfile
└── main
1.1 创建Dockerfile

因为我是直接把可执行程序直接上传的,本身是没有可执行权限的,我们必须赋给权限
Dockerfile

# 表示依赖 alpine 最新版
FROM alpine:latest

#创建文件夹
RUN mkdir /app

#将Dockerfile 中的文件存储到/app下
ADD . /app

# 设置工作目录
WORKDIR /app

#设置时区为上海
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

ENV GO111MODULE=on
ENV GOPROXY="https://goproxy.io"

#设置权限
RUN chmod -R 777 ./main
# 设置编码
ENV LANG C.UTF-8

# 暴露的端口
EXPOSE 8000
 
# 运行golang程序的命令
ENTRYPOINT ["/app/main"]

1.2 创建镜像
docker build -t hello_go .
docker image ls
docker run -p 8000:8000 hello_go

访问 http://121.4.24.50:8000/hello

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865914.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号