2

我正在使用 aws code deploy 将 nodejs 服务器部署到 ec2 实例。

aws 代码部署代理将捆绑包下载到以下路径:

/opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/deployment-archive/gulpfile.js

这意味着我的 gulpfile.js 位于

/opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/deployment-archive/gulpfile.js

但是我运行的任何 bash 命令都将从

/opt/codedeploy-agent

如何将目录更改为动态生成

部署组 ID/部署 ID/部署存档

并从 package.json 安装节点模块?

4

3 回答 3

3

您可以使用环境变量来更改目录

$DEPLOYMENT_GROUP_ID/$DEPLOYMENT_ID/deployment-archive/

您可以参考this了解如何使用它们。

于 2017-04-14T17:57:17.920 回答
1

您还可以通过从代理配置文件更改它来更改代码部署添加部署组ID/部署ID/部署存档的根目录:https ://docs.aws.amazon.com/codedeploy/latest/用户指南/参考代理配置.html

默认情况下,它位于 /opt/codedeploy-agent/deployment-root 中,但您可以更改它。

此外,您可以通过控制每个文件的源和目标来告诉 CodeDeploy 将文件复制到 appspec 文件中的不同目录:

https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-files.html

于 2017-05-19T23:06:19.857 回答
0

我的理解是您不能从项目的根目录运行 BeforeInstall,您必须将代码移动到 AfterInstall。

要找到安装后根目录的完整路径,然后从那里导航,请查看: AWS CodeDeploy AfterInstall script is being run from code-deploy agent dir

于 2017-03-14T15:12:18.270 回答