登录
首页 >  Golang >  Go问答

在亚马逊EC2上运行未在本地编译的Go程序的方法

来源:stackoverflow

时间:2024-03-24 19:00:34 210浏览 收藏

在亚马逊 EC2 上部署 Go 二进制文件时,作者提出了一种无需在 EC2 上编译源代码的方法。这种方法涉及在本地编译二进制文件,然后将其上传到 EC2 实例。作者认为这种方法比移动源代码并远程编译更有效,因为它可以避免复制源代码和安装不必要的二进制文件。

问题内容

我正在寻找一种在亚马逊 ec2 上部署 go 二进制文件的方法。目前我找到的所有教程 (1, 2) 都在解释如何在 ec2 上移动 go 源代码并在那里编译它们。

由于几个原因,这不是我正在寻找的东西。其中:

  • 我不想复制所有来源
  • 我不想安装不相关的二进制文件(go 编译器和其他东西)

在我看来这是不必要的,因为 go 具有交叉编译二进制文件的能力。我认为最好在本地构建二进制文件并将其上传到 ec2 上。

我在这里遗漏了一些东西吗?我的方法是否有任何隐藏的陷阱或者有更好的方法吗?

附注如果这个问题更适合服务器故障,请告诉我或将其移至此处。


解决方案


你是对的。 go 的卖点之一是交叉编译成单个二进制文件。最好在本地主机上编译,然后将其复制到您的服务器。

aws 的
$ goos=linux goarch=amd64 go build -o my_app .
$ scp my_app ec2@ip:~

Official sample 是这样做的:

goos=linux go build -tags lambda.norpc -o bootstrap main.go

然后创建一个要上传的 zip 文件:

zip awslambda.zip bootstrap

好了,本文到此结束,带大家了解了《在亚马逊EC2上运行未在本地编译的Go程序的方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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