Amazon ec2 pm2部署在完全获取后失败
我想在我的ec2实例上部署一个简单的应用程序,但出现以下错误:Amazon ec2 pm2部署在完全获取后失败,amazon-ec2,deployment,pm2,Amazon Ec2,Deployment,Pm2,我想在我的ec2实例上部署一个简单的应用程序,但出现以下错误: bash: line 0: cd: /home/ubuntu/source: No such file or directory fetch failed Deploy failed 1 我不明白为什么我没有在虚拟机或本地机上创建“源”目录。就像pm2自己创造的一样。有人能解释一下为什么会有它吗?我如何才能成功地部署它 My ecosystem.config.js: module.exports = { apps
bash: line 0: cd: /home/ubuntu/source: No such file or directory
fetch failed
Deploy failed
1
我不明白为什么我没有在虚拟机或本地机上创建“源”目录。就像pm2自己创造的一样。有人能解释一下为什么会有它吗?我如何才能成功地部署它
My ecosystem.config.js:
module.exports = {
apps: [{
name: 'puk',
script: 'project/'
}],
deploy: {
production: {
user: 'ubuntu',
host: 'ec2-35-180-119-129.eu-west-3.compute.amazonaws.com',
key: '~/.ssh/id_rsa.pub',
ref: 'origin/master',
repo: 'git@github.com:nalnir/pukinn.git',
path: '/home/ubuntu/',
'post-deploy': 'npm install && pm2 startOrRestart ecosystem.config.js'
}
}
}
pm2部署生产命令后的完整日志:
--> Deploying to production environment
--> on host ec2-35-180-119-129.eu-west-3.compute.amazonaws.com
○ deploying origin/master
○ executing pre-deploy-local
○ hook pre-deploy
○ fetching updates
○ full fetch
bash: line 0: cd: /home/ubuntu/source: No such file or directory
fetch failed
Deploy failed
1
script
参数需要实际的脚本路径,而不是目录
您应该将其更改为主脚本的名称,例如:script:'./index.js'
您还应该将deploy.production.path
更新为类似/home/ubuntu/project
如中所述,
脚本
期望脚本的路径启动
我也遇到了同样的问题并得到了这个线程,但是上面的回答/评论对我没有多大帮助。PM2网站上也没有有用的文件。因此,我从初始阶段开始逐一执行所有步骤:
update
命令之前,先执行setup
。因为PM2创建了自己的文件夹结构:[当前、源、共享]()--force
选项:
ecosystem.config.js文件中的我的部署对象:
deploy : {
stage : {
// Deploy New: pm2 deploy ecosystem.config.js stage setup
// Update: pm2 deploy ecosystem.config.js stage update --force
user : '_MY_SERVER_USER_NAME_', // remote server username
host : '_MY_REMOTE_SERVER_IP_', // remote server ip
ref : 'origin/stage', // remote repo name
repo : 'git@bitbucket.org:_MY_REPO_SSH_CLONE_URL_.git', // repo url
path : '_REMOTE_DIRECTIVE_', // src root paths like /home/ubuntu/
'pre-deploy-local': '',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --only MyAppName',
'pre-setup': ''
}
}
我希望,它会对其他人有所帮助。我更新了脚本和路径,但仍然是相同的错误:/home/ubuntu/puk/source:没有这样的文件或控制器我不知道这个源目录来自哪里。app中的
name
参数也重命名了吗?它必须是一个js文件名,而不仅仅是puk
我以为名称只是一个应用程序的名称,而不是文件名。对不起,我指的是脚本
参数是的,我也这么做了,但同样的错误也发生了。我检查了ssh密钥和已知主机,但由于某些原因仍然无法部署它:/