Azure DevOps, 通过Azure Devops部署一个Go的Web应用

Golang 投稿 57700 0 评论

Azure DevOps, 通过Azure Devops部署一个Go的Web应用

文章配套视频专栏:

https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536

首先我们要先创建一个go的web项目,我这里使用的是go这边比较知名的一个web框架:gin

$ go get -u github.com/gin-gonic/gin

引入gin的依赖。

引入依赖之后,我们在main方法中创建一个用来接受http请求的action,并且绑定一个路由。

r := gin.Default()    r.GET("/hello", func(context *gin.Context) {        context.JSON(200, gin.H{"message": "hello world",        })    })

然后我们启动一下项目看一下socket的监听是否正确。

 可以看到我们刚才绑定的路由已经在8080端口开始监听了,访问一下路由地址只要能正常返回一个简单的go的应用就创建成功了。

同步代码到仓库的过程,我们就不再赘述了,之前的时候已经写过很多次,这里我贴一下地址,需要的同学自行参考

老规矩,如果你的默认分支不是azure自带的main,那你需要在分支中创建一个空的yml文件,用于存放azure的流水线脚本。

创建好之后,我们开始在里面添加我们想要的步骤,首先我们要通过 go build 命令进行go的编译,然后通过制品上传把编译好的可执行文件上传到仓库去

在任务栏中搜索go,然后选怎go编译

然后编译过程选择go build,执行目录和go mod保持一致就可以,在我们的项目根目录下。

然后我们把编译好的可执行文件上传到制品仓库:

# Starter pipeline

# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yamltrigger:- main

pool:
  vmImage: ubuntu-latest

steps:- script: echo Hello, world!
  displayName: 'Run a one-line script'- script: |echo Add other tasks to build, test, and deploy your project.
    echo See https://aka.ms/yaml
  displayName: 'Run a multi-line script'- task: Go@0
  inputs:
    command: 'build'- script: 
   pwd;
   ls;
   mkdir target;
   cp go_azure_app target;- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '/home/vsts/work/1/s/target'ArtifactName: 'drop'publishLocation: 'Container'

接下来我们需要创建部署流水线,go的部署流水线非常简单,我们只需要把编译好的制品直接传到服务器上就行了,也不需要装运行环境,

创建一下部署流水线,挂载好我们编译流水线的结果,然后添加一个SFTP的上传任务和一个SSH的远程命令执行

 这里我们有一点需要注意的是,go的可执行文件需要授予可执行权限,不然无法直接启动。

 到这里用azure部署go的 web应用就成功了,可能在过程上感觉相比之前简单了许多,那是因为经过前面十几篇文章的积累,很多细枝末节的东西我们都已经踩过来了。

到这篇文章为止,部署的操作我们也算研究的差不多了,接下来我们开始研究通过azure的流水线去玩一下更花的操作。

编程笔记 » Azure DevOps, 通过Azure Devops部署一个Go的Web应用

赞同 (97) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽