Search code examples
bashamazon-web-servicesaws-code-deploy

AWS CodeDeploy Command Not Found


When trying to deploy a Node.js application I'm getting an error npm: command not found in my post_install.sh AfterInstall script. What's super strange is in my BeforeInstall script I run npm install -g pm2 and it works perfectly fine without any errors.

Both are being run as the ubuntu user. Why would this command work in one CodeDeploy script and fail in another?


Solution

  • Looks like I was able to solve this by adding the following to my script files.

    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
    

    Hopefully this can help someone.