node.js - pm2部署和gitlab私有(private)仓库

标签 node.js ssh gitlab pm2

我想使用 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/

相关文章:

ruby-on-rails-3 - Gitlab 在带有 apache 和乘客的子目录中

gitlab - 有没有办法显示每个分支的构建状态/代码覆盖率

node.js - model.remove 给出 modelname.remove(...).exec 不是一个函数

javascript - 如何将 Node 模块导入我的 backbone.js 应用程序?

bash - 如何在 ssh 命令行中使用环境模块?

linux - 使用端口转发重新启动后连接 ssh

bash - bash 脚本中的 ssh 退出循环

git - 如何将 gitlab 备份迁移到具有最新 gitlab 版本的新服务器

javascript - 如何将 PEM 证书/ key 作为变量传递给 node.js 项目

node.js - 在 node.js 中使用 Swig 模板引擎是错误的吗?