I have a web application written with NodeJS for the webserver and Angular on the frontend.
The structure is like this
musicapp
|-- server
| |--- src/
| |--- node_modules/
| |--- package.json
|--- client
|--- src/
|--- node_modules/
|--- package.json
When I deploy to Elastic Beanstalk using eb deploy nothing happens, and I've realized it must be because the default action for Elastic Beanstalk is to call npm install and npm start but in my case, that doesn't do anything when called on the root.
So my question is, how do I tell Elastic Beanstalk: upon deploy, cd to client and call npm install, npm run build and then cd to server and call npm install, npm start ?
I can't find anything in the EB documentation that explains how one might do this.
In your root folder create a dir called .ebextensions and inside that folder create a file called 01_npm.config (for example).
In that yaml file you can specify commands by:
container_commands:
01_client:
command: "cd ./server && npm install && npm run build"
leader_only: true
02_server:
command: "cd ./client && npm install && npm run build"
leader_only: true
Elastic Beanstalk will execute those commands when you run eb deploy automatically.
For more information see: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With