Node.js应用程序未在AWS Elastic Beanstalk上运行
我甚至无法接替Basic Express deployment tutorial on AWS Elastic Beanstalk。
问题
- 我按照一步一步的教程进行操作
- 运行
eb deploy
时,命令成功运行。但是,应用程序未运行 - 在AWS Elastic Beanstalk Web控制台上,我的实例正在以严重状态运行。错误是
Following services are not running: application
- 在对EC2实例(在64位Amazon Linux / 4.7.1上运行的Node.js)进行SSH时,可以使用
npm
和node
命令。我通过Web控制台或EB CLI重新创建了环境,但命令仍然不可用 - 当检查
eb logs
时,/var/log/nodejs/nodejs.log
是空的
问题:有人知道它是什么或有人遇到过类似情况吗?
尝试
我试过了:
- 通过EB CLI部署或通过上传zip存档
仅部署相关代码(使用
.ebignore
) 使用dist/
文件夹和node_modules/
部署代码 - 使用
.ebextension/some_config.config
命令添加npm start
- 在配置中更改NodeJ的版本
- 在start命令中设置
npm install && npm start
,因为我认为最初缺少依赖项
更新
- 01 - 2月 - 2019 我实际上使用了react-boilerplate然后打开an issue。部署似乎是成功的(CLI中没有错误),但实例变得无对应,我有一个“无实例数据”错误。
- 15月 - 2019 我可以成功部署反应样板。主要问题是许可。见答案。
日志
/var/log/eb-activity.log
:
[2019-01-16T18:40:23.987Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1] : Starting activity...
[2019-01-16T18:40:23.988Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook] : Starting activity...
[2019-01-16T18:40:23.988Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/01stop_xray.sh] : Starting activity...
[2019-01-16T18:40:26.103Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/01stop_xray.sh] : Completed activity. Result:
Executing: if ( initctl status xray | grep start ); then initctl stop xray; fi
xray start/running, process 2277
xray stop/waiting
[2019-01-16T18:40:26.103Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/02start_xray.sh] : Starting activity...
[2019-01-16T18:40:26.208Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/02start_xray.sh] : Completed activity.
[2019-01-16T18:40:26.208Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/10stop.sh] : Starting activity...
[2019-01-16T18:40:27.617Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/10stop.sh] : Completed activity. Result:
+ /opt/elasticbeanstalk/containerfiles/ebnode.py --action stop-all
status: Unknown job: nodejs
status: Unknown job: nodejs
status: Unknown job: nginx
status: Unknown job: nginx
status: Unknown job: httpd
status: Unknown job: httpd
Not using a reverse proxy
Did not find to find status of init job. Assuming stopped.
Did not find to find status of init job. Assuming stopped.
Did not find to find status of init job. Assuming stopped.
Did not find to find status of init job. Assuming stopped.
Did not find to find status of init job. Assuming stopped.
Did not find to find status of init job. Assuming stopped.
[2019-01-16T18:40:27.617Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/20clean.sh] : Starting activity...
[2019-01-16T18:40:27.708Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/20clean.sh] : Completed activity. Result:
++ /opt/elasticbeanstalk/bin/get-config container -k app_base_dir
+ EB_APP_BASE_DIR=/var/app
+ rm -rf /var/app
[2019-01-16T18:40:27.708Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/30app_deploy.sh] : Starting activity...
[2019-01-16T18:40:28.071Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/30app_deploy.sh] : Completed activity. Result:
++ /opt/elasticbeanstalk/bin/get-config container -k app_base_dir
+ EB_APP_BASE_DIR=/var/app
++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
+ EB_APP_STAGING_DIR=/tmp/deployment/application
++ /opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir
+ EB_APP_DEPLOY_DIR=/var/app/current
++ /opt/elasticbeanstalk/bin/get-config container -k app_user
+ EB_APP_USER=nodejs
+ mkdir /var/app
+ mv /tmp/deployment/application /var/app/current
+ chown -R nodejs:nodejs /var/app/current
[2019-01-16T18:40:28.071Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/40config_deploy.sh] : Starting activity...
[2019-01-16T18:40:28.166Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/40config_deploy.sh] : Completed activity. Result:
++ /opt/elasticbeanstalk/bin/get-config container -k config_staging_dir
+ EB_CONFIG_STAGING_DIR=/tmp/deployment/config
++ ls /tmp/deployment/config
+ for i in '$(ls $EB_CONFIG_STAGING_DIR)'
++ sed -e 's/#/\//g'
++ echo '#etc#init#nodejs.conf'
+ FILE_NAME=/etc/init/nodejs.conf
+ /bin/cp /tmp/deployment/config/#etc#init#nodejs.conf /etc/init/nodejs.conf
[2019-01-16T18:40:28.166Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/50start.sh] : Starting activity...
[2019-01-16T18:40:29.600Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/50start.sh] : Completed activity. Result:
+ /opt/elasticbeanstalk/containerfiles/ebnode.py --action start-all
nodejs start/running, process 3648
Not using a reverse proxy
[2019-01-16T18:40:29.600Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/60monitor_pids.sh] : Starting activity...
[2019-01-16T18:40:29.914Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/60monitor_pids.sh] : Completed activity. Result:
+ '[' -d /etc/healthd ']'
++ /opt/elasticbeanstalk/bin/get-config optionsettings --namespace aws:elasticbeanstalk:container:nodejs --option-name ProxyServer
+ PROXY_SERVER=none
+ case "$PROXY_SERVER" in
+ rm -rf /var/elasticbeanstalk/healthd/proxy.pid
+ /opt/elasticbeanstalk/bin/healthd-track-pidfile --name application --location /var/run/nodejs.pid
[2019-01-16T18:40:29.914Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/70restart_healthd.sh] : Starting activity...
[2019-01-16T18:40:32.351Z] INFO [3216] - [Application deployment app-c0e5-190116_192242@8/StartupStage1/AppDeployEnactHook/70restart_healthd.sh] : Completed activity. Result:
+ '[' -d /etc/healthd ']'
++ /opt/elasticbeanstalk/bin/get-config optionsettings --namespace aws:elasticbeanstalk:container:nodejs --option-name ProxyServer
+ PROXY_SERVER=none
+ '[' -f /etc/healthd/config.yaml ']'
+ case "$PROXY_SERVER" in
+ /opt/elasticbeanstalk/bin/healthd-configure --appstat-log-path '' --appstat-unit '' --appstat-timestamp-on ''
+ /opt/elasticbeanstalk/bin/healthd-restart
回答如下:
主要遇到的问题:
- 没有安装DevDependencies
- 许可问题
解:
- 默认使用
NPM_USE_PRODUCTION: false
环境变量AWS使用生产配置 - 在
unsafe-perm=true
中添加.npmrc
作为magic solution
关于https://github/react-boilerplate/react-boilerplate/issues/2566的更多细节