登录
首页 >  Golang >  Go问答

将二进制文件部署到云端运行

来源:stackoverflow

时间:2024-03-09 13:09:31 260浏览 收藏

golang学习网今天将给大家带来《将二进制文件部署到云端运行》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我有一个 go 模块,其中包含几个不同的“主”包,位于子目录 cmd/program1/program1.gocmd/program2/program2.go 等中。我想将其中之一作为 Web 服务部署到 Cloud Run。

我遇到的问题是完全自动化的部署命令 gcloud run deploy --source . 似乎要求我正在部署的程序有自己的 go.mod 文件,位于 cmd/program1/go.mod。但是,我的 go.mod 文件比那里高两级,我无法轻易更改它,因为 program1 依赖于模块中的其他几个 Go 包。

我想做的是将整个模块提交到 Cloud Build,并告诉它应该构建并运行包 cmd/program1。我怎样才能做到这一点?

我知道的一种方法是创建自己的 Dockerfile,在本地构建 Docker 映像,然后将其部署到 Cloud Run。但是,我不想在本地运行 docker,而是想在 Cloud Build 中构建所有内容。

我知道的第二种方法是将 Dockerfile 放在模块的顶层,并将其提交到 Cloud Build。然而,这意味着我只能在我的模块中部署一个程序,因为只有一个顶级 Dockerfile,并且它将运行我的模块中的某个特定程序。相反,我希望能够灵活地将模块中的多个“主”包部署为单独的 Cloud Run 服务。

有没有一种方法,使用 Google 设置的自动构建包,对 Cloud Build 说“嘿,请构建这样那样的包作为主要可执行文件,并将该可执行文件设置为要运行的东西云跑”?


正确答案


您可以使用 google_entrypoint 环境变量来指定端点包:

gcloud builds submit . \
  --pack image=$(IMAGE),env=GOOGLE_ENTRYPOINT=./cmd/somepackage

到这里,我们也就讲完了《将二进制文件部署到云端运行》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>