【问题标题】:Elastic Beanstalk Procfile for go用于 Go 的 Elastic Beanstalk Procfile
【发布时间】:2017-09-07 16:47:15
【问题描述】:

我正在尝试使用 Elastic Beanstalk 将我的 go restful 服务器程序部署到 EC2 Linux。该文件说我需要在根目录下创建一个 Procfile。所以我做了。步骤如下:

  1. 使用 myapp.go 构建我的 go 程序

    $ go build -o myapp -i myapp.go
    
  2. 在根目录下创建一个具有确切名称的 Procfile

    web: myapp
    
  3. 将 Procfile 和 myapp 映像压缩到 myapp.zip 文件中。

通过 Elastic Beanstalk 控制台上传到服务器。但我不断收到Degraded 健康和警告

WARN 进程终止时间超过 10 秒。

任何建议。顺便说一句,我尝试对来自 Elastic Beanstalk 示例库的简单 application.go zip 文件使用相同的 procfile 过程。它也没有用。

【问题讨论】:

  • 嗨!我也遇到了同样的问题,你解决了吗?
  • 我也有同样的问题。有什么想法吗?

标签: amazon-web-services go deployment amazon-elastic-beanstalk


【解决方案1】:

我终于能够使用eb client 使用 Elastic Beanstalk 部署一个 Go 应用程序。 EB 需要一些东西:

  1. 主文件的名称应为application.go
  2. 确保您的应用正在侦听端口 5000。
  3. 您需要在主根目录中使用 Procfile

    web: bin/application
    
  4. 你需要一个构建文件

    make: ./build.sh
    
  5. 最后你需要一个build.sh 文件

    #!/usr/bin/env bash
    # Stops the process if something fails
    set -xe
    
    # All of the dependencies needed/fetched for your project. 
    # FOR EXAMPLE:
    go get "github.com/gin-gonic/gin"
    
    # create the application binary that eb uses
    GOOS=linux GOARCH=amd64 go build -o bin/application -ldflags="-s -w"
    

然后,如果您运行 eb deploy(在创建初始 eb 存储库之后),它应该可以工作。我为在 EB here 上部署 Gin 应用程序编写了一个完整的教程。专门关于使用 Elastic Beanstalk 进行部署的部分是 here

【讨论】:

  • 不错,不错的收获。更新。谢谢!
  • 这些都不适合我,我不明白怎么回事。相同的设置:(
猜你喜欢
  • 2017-05-23
  • 1970-01-01
  • 2020-06-27
  • 2020-11-10
  • 2012-10-02
  • 2018-10-01
  • 2020-10-04
  • 2016-04-02
  • 2017-08-01
相关资源
最近更新 更多