我想使用 pm2 deploy
在远程服务器上部署我的应用程序。
这是我的 ecosystem.config.js
文件的内容:
module.exports = {
apps: [
{
name: `cms`,
script: 'cms.js',
env: {
COMMON_VARIABLE: 'true'
},
env_development: {
NODE_ENV: 'development',
},
}
],
deploy: {
development: {
user: 'username',
host: 'xxx.xxx.xxx.xxx',
ref: 'origin/development',
repo: 'git@gitlab.com:MyGitlabOrg/myproject.git',
path: '/home/username/sites/development/cms',
'post-deploy':
'\
mkdir -p logs && \
npm install && \
npm run install:development && npm run make:development && \
NODE_ENV=development pm2 reload ecosystem.config.js --env development',
ssh_options: ['StrictHostKeyChecking=no', 'PasswordAuthentication=no'],
env: {
NODE_ENV: 'development'
}
}
}
};
下面是我在术语中使用的命令(在我的本地计算机上):
$ pm2 deploy ecosystem.config.js development setup
--> Deploying to development environment
--> on host xxx.xxx.xxx.xxx
â hook pre-setup
â running setup
â cloning git@gitlab.com:MyGitlabOrg/myproject.git
â full fetch
Clonage dans '/home/username/sites/development/cms'...
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
failed to clone
Deploy failed
正如你所看到的,我得到了这个奇怪的错误GitLab:找不到你正在寻找的项目。
...
我已经检查了所有 ssh key ,我可以从本地计算机 ssh 到远程服务器,并且还可以从远程服务器克隆存储库。
您知道如何解决此问题吗?
谢谢!
最佳答案
通过 SSH 连接到您的服务器并运行
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这将生成私钥和公钥。 现在复制公钥内容并将其粘贴到 GitLab 上。
cat /home/ubuntu/.ssh/id_rsa.pub
接下来,检查对存储库的 SSH 访问
ssh -T git@gitlab.com
您应该会看到来自 GitLab 的欢迎消息。
现在您已准备好从 PM2 进行部署。
关于node.js - pm2部署和gitlab私有(private)仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454226/