猿问

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

溢出物,

我一直在努力尝试将 Go 应用程序发布到 AWS Elastic Beanstalk 几个小时。

我的项目结构现在是:


以下文件都在我的根文件夹中:


application.go

build.sh

Buildfile

Procfile

应用程序.go

package main


import (    

    "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.sh

go get "github.com/gin-gonic/gin"    //Have tried without quotation marks


go build application.go

构建文件

make: ./build.sh

档案

web: bin/application

我还阅读了 AWS网站上的文档。据我所知,我的代码和上面提到的演示中的代码是正确的。


我将根文件夹的全部内容压缩为 .zip 文件,然后通过 Web 门户上传到 AWS。


翻阅古今
浏览 170回答 2
2回答

慕丝7291255

当 build.sh 脚本缺少可执行权限时,可能会发生这种情况。在这种情况下,beantalk 上的“make.service”无法执行脚本并生成错误。如果您在 unix 机器上开发,请在部署前尝试chmod +x build.sh 。如果您在 Windows 机器上开发,则无法设置 unix 文件属性。但是您可以将这个技巧与 Buildfile 一起使用并以这种方式进行部署。构建文件make: chmod +x build.sh; ./build.sh当 make 服务运行时,这将使 build.sh 可执行。

LEATH

在将 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 userwebapp ALL=(ALL) NOPASSWD:ALL
随时随地看视频慕课网APP

相关分类

Go
我要回答