为了账号安全,请及时绑定邮箱和手机立即绑定

将 Go 项目文件部署到 AWS Elastic Beanstalk

将 Go 项目文件部署到 AWS Elastic Beanstalk

Go
翻阅古今 2022-06-27 15:13:33
溢出物,我一直在努力尝试将 Go 应用程序发布到 AWS Elastic Beanstalk 几个小时。我的项目结构现在是:以下文件都在我的根文件夹中:application.gobuild.shBuildfileProcfile应用程序.gopackage mainimport (        "github.com/gin-gonic/gin")func main() {    router := gin.Default()    router.GET("/user/:name", func(c *gin.Context) {        name := c.Param("name")        c.String(http.StatusOK, "Hello %s", name)    })    router.Run(":5000")}build.shgo get "github.com/gin-gonic/gin"    //Have tried without quotation marksgo build application.go构建文件make: ./build.sh档案web: bin/application我还阅读了 AWS网站上的文档。据我所知,我的代码和上面提到的演示中的代码是正确的。我将根文件夹的全部内容压缩为 .zip 文件,然后通过 Web 门户上传到 AWS。
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

当 build.sh 脚本缺少可执行权限时,可能会发生这种情况。在这种情况下,beantalk 上的“make.service”无法执行脚本并生成错误。

如果您在 unix 机器上开发,请在部署前尝试chmod +x build.sh 。

如果您在 Windows 机器上开发,则无法设置 unix 文件属性。但是您可以将这个技巧与 Buildfile 一起使用并以这种方式进行部署。

构建文件

make: chmod +x build.sh; ./build.sh

当 make 服务运行时,这将使 build.sh 可执行。


查看完整回答
反对 回复 2022-06-27
?
LEATH

TA贡献1936条经验 获得超6个赞

在将 Golang 应用程序的部署从 Amazon Linux 1 平台迁移到 Amazon Linux 2 平台时,我也遇到了这个问题。我在构建过程中遇到了类似的错误:


    2021/07/10 16:33:21.411538 [ERROR] An error occurred during execution of command [app-deploy] - [Golang Specific Build Application]. Stop running the command. Error: build application failed on command ./build.sh with error: startProcess Failure: starting process "make" failed: Command /bin/sh -c systemctl start make.service failed with error exit status 1. Stderr:Job for make.service failed because the control process exited with error code. See "systemctl status make.service" and "journalctl -xe" for details.

在查看 systemctl 状态后,按照错误中的建议,我发现 linux 用户“webapp”似乎没有正确的权限。


我在 sudoers 文件中添加了“webapp”,现在构建过程完成,部署能够成功。


# User rules for webapp user

webapp ALL=(ALL) NOPASSWD:ALL


查看完整回答
反对 回复 2022-06-27
  • 2 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信