簡體   English   中英

找不到 AWS CodeDeploy 命令

[英]AWS CodeDeploy Command Not Found

嘗試部署 Node.js 應用程序時出現錯誤 npm:在我的post_install.sh AfterInstall 腳本中npm: command not found 超級奇怪的是,在我的 BeforeInstall 腳本中,我運行npm install -g pm2 ,它運行良好,沒有任何錯誤。

兩者都以ubuntu用戶身份運行。 為什么此命令在一個 CodeDeploy 腳本中有效而在另一個腳本中失敗?

看起來我能夠通過在腳本文件中添加以下內容來解決這個問題。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

希望這可以幫助某人。

我在使用ubuntu用戶的ubuntu服務器中嘗試在AfterInstall掛鈎期間調用我的shell腳本中的aws cli時遇到了同樣的問題。

這是我手動執行腳本時發生的事情sh ecr-login.sh

# Works
$(aws ecr get-login --no-include-email --region sa-east-1)

# Works
$(/home/ubuntu/.local/bin/aws ecr get-login --no-include-email --region sa-east-1)

當CodeDeploy執行它時:

# Not Work
$(aws ecr get-login --no-include-email --region sa-east-1)

# Works
$(/home/ubuntu/.local/bin/aws ecr get-login --no-include-email --region sa-east-1)

我在安裝后掛鈎期間嘗試在我的 shell 腳本中調用 aws cli 時遇到了同樣的問題,在具有 ubuntu 用戶的 ubuntu20 服務器中。

我已經檢查了服務器 yarn/pm2/node 上的 /usr/bin/ 文件夾是否正在運行 如果沒有在命令 root@ip-:/# ln -s /root/.nvm/versions/node/v16.17.0/ 下運行bin/node /usr/bin/ root@ip-:/# ln -s /root/.nvm/versions/node/v16.17.0/bin/pm2 /usr/bin/ root@ip-:/# ln -s /root/.nvm/versions/node/v16.17.0/bin/yarn /usr/bin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM