pm2 部署和 gitlab 私有仓库

问题描述 投票:0回答:3

我想使用

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: '[email protected]: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 [email protected]: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: The project you were looking for could not be found.
...

我已经检查了所有的 ssh 密钥,我能够从我的本地机器 ssh 到我的远程服务器,我也能够从我的远程服务器克隆 repo。

你知道如何解决这个问题吗?

谢谢!

node.js ssh gitlab pm2
3个回答
6
投票

SSH 进入你的服务器并运行

ssh-keygen -t rsa -b 4096 -C "[email protected]"

这将生成私钥和公钥。 现在复制公钥的内容,粘贴到 GitLab 上。

cat /home/ubuntu/.ssh/id_rsa.pub

接下来,检查对存储库的 SSH 访问

ssh -T [email protected]

您应该会看到来自 GitLab 的欢迎消息。

现在您可以从 PM2 进行部署了。


0
投票

根据你上面的例子,为用户而不是 root 设置你的 ssh,所以你必须为用户名设置 ssh ...所以它将在 /home/username/.ssh/id_rsa*


0
投票

此外,确保 git fetch/git pull 在远程服务器上正常工作。如果您看到与违规 ip 相关的错误,请将其从已知主机中删除,然后重试。为我工作。

© www.soinside.com 2019 - 2024. All rights reserved.