【问题标题】:AWS CodeDeploy jarAWS CodeDeploy jar
【发布时间】:2019-01-25 00:02:07
【问题描述】:

我想使用 AWS CodeDeploy 部署一个 jar 文件,然后在 EC2 上运行我的 java -jar 命令。但我注意到 AWS CodeDeploy 仅从 S3 中提取 ziptar 和 tar.gz`。我想我将使用本地 jenkins 中的 CLI 将 .zip 文件(包含 jar)推送到 S3,然后运行另一个 CLI 命令来启动 AWS CodeDeploy,这将从 S3 中提取 .zip。

但是我对 AWS CodeDeploy 的详细信息有疑问:

我可以使用 appspec.yml 发出两个命令吗,

1) 将 .zip 从 S3 解压缩到 EC2 上后

2) 在特定位置发出java -jar

谢谢

【问题讨论】:

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


    【解决方案1】:

    1) 您不需要发出 unzip 命令,appspec.yml 中的 files 部分用于指定您希望复制到 ec2(目标)上的文件系统的存档(源)中的文件,并将完成通过代码部署代理 RE https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-files.html

    2) 创建一个运行脚本以在钩子 ApplicaitonStart 下发出 java -jar 命令 回复https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html

    基于 os linux 的 appspec.yml 示例:

    version: 0.0
    os: linux
    files:
      - source: ./
        destination: /home/ubuntu/myapp
    hooks:
      ApplicationStart:
        - location: runapp.sh
          runas: ubuntu
    

    runapp.sh:

    #!/usr/bin/env bash
    echo 'Starting my app'
    cd '/home/ubuntu/myapp'
    java -jar myapp.jar
    

    在此示例中,您将在部署包中包含 runapp.sh

    【讨论】:

    • 收到The CodeDeploy agent did not find an AppSpec file within the unpacked revision directory at revision-relative path "appspec.yml". 错误。这通常是因为 appspec.yml 不在根目录中,所以我读过,但这是我的 GIT:github.com/BillyCharter87/Tech-O-Dex-API,否则。经过进一步检查,我注意到我的 .zip 文件中没有我的 appspec.yml,只有 jar。有没有办法将 .yml 和 .jar 一起转换为一个?还尝试了“来自 Github”选项并得到了MessageNo such file or directory - getcwd?
    • 需要先推送修订版,再创建部署,docs.aws.amazon.com/codedeploy/latest/userguide/…
    • 抱歉回复晚了,我得到了要部署的代码,但是我无法让它运行他启动我的应用程序的命令:github.com/BillyCharter87/Tech-O-Dex-API/blob/… 我的 cd 命令错了吗?我认为我的应用在错误的文件夹中运行 java -jar Tech-O-Dex-0.1.0.jar. 命令,但我不知道如何确保它到达 /home/ec2-user/Tech-O-Dex/target 谢谢
    • 没问题,如果你的jar在zip部署包中名为target的文件夹中,应该可以,你可以查看s3上的内容来验证吗?最后,检查日志文件,看看启动时是否有错误less /var/log/aws/codedeploy-agent/codedeploy-agent.log
    • 查看 /var/log/ 命令我看到 `InstanceAgent::Plugins::CodeDeployPlugin::ScriptError - 指定位置的脚本:runapp.sh 以用户身份运行 ec2-user 失败,退出代码为 127 - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:173:in execute_script' 看起来运行脚本时出错,为什么我不知道? S3 存储桶看起来不错,在 .zip 中包含我需要的一切
    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2020-07-10
    相关资源
    最近更新 更多