【问题标题】:EC2 deployment of golang app using CodeDeploy使用 CodeDeploy 部署 golang 应用程序的 EC2
【发布时间】:2020-08-29 01:21:44
【问题描述】:

我正在尝试使用 CodeDeploy 将一个简单的 golang 网络服务器部署到 EC2。部署失败并出现以下错误{\"error_code\":6,\"script_name\":\"scripts/start.sh\",\"message\":\"Script at specified location: scripts/start.sh failed to close STDOUT\"。 CodeDeploy 相关文件:

appspec.yml

version: 0.0

os: linux

files:
  - source: /main.go
    destination: /app/
  - source: /index.html
    destination: /app/
  - source: /config.json
    destination: /app/
  - source: /webserver.log
    destination: /app/

hooks:
  BeforeInstall:
    - location: scripts/cleanup.sh
      timeout: 180
      runas: root
  AfterInstall:
    - location: scripts/build.sh
      timeout: 180
      runas: root
  ApplicationStart:
    - location: scripts/start.sh
      timeout: 180
      runas: root

脚本/cleanup.sh

sudo rm /app -rf
sudo mkdir /app
sudo chown -R ec2-user:ec2-user /app

sudo yum update -y
sudo yum install -y golang

脚本/build.sh

go build -o /app/webserver /app/main.go

脚本/start.sh

/app/webserver &

我想这与我如何启动服务器有关,但我不擅长 Linux 的复杂性,因此非常感谢您提供更详细的解释。

完整的网络服务器源代码可以在github找到。

【问题讨论】:

    标签: amazon-web-services go aws-code-deploy


    【解决方案1】:

    我认为这与 stdout, stderr, and stdin有关:

    在&之前添加下面的字符串

    /dev/null 2> /dev/null < /dev/null
    

    The source

    【讨论】:

    • 嗨,我的 application_start.sh 出现 STDOUT 错误。你会建议在我的代码中在哪里添加这一行? #!/bin/sh cd /home/ec2-user npm run start&amp;
    • 我认为是在&amp; 之前和start 之后。
    • 您刚刚帮助我完成了我的第一个代码提交到 EC2 实例的 8 天任务。非常感谢您的帮助!
    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 2015-02-24
    • 2021-10-15
    • 2016-09-14
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多