NodeJS 将pm2与CircleCI一起使用

2vuwiymt  于 2022-12-03  发布在  Node.js
关注(0)|答案(2)|浏览(229)

我在我的远程ubuntu服务器上使用pm2和CircleCI for CI,我有以下配置文件:

version: 2.1
orbs:
  node: circleci/node@1.1.6
jobs:
  deploy-prod:
    docker:
    # specify the version you desire here (you might not want node)
    - image: circleci/node:7.10
    steps:
        - checkout
        - run: ssh -oStrictHostKeyChecking=no -v $DROPLET_USER@$DROPLET_IP ./deploy_project.sh $MICROSERVICE_NAME
workflows:
    build-and-test:
      jobs:
        - deploy-prod:
            filters:
              branches:
                only:
                  - master

在我的部署脚本中,我执行以下操作:

cd /var/www/nodejs/$1
git pull git@github.com:DevandScorp/hippocrates_authorizationmicroservice.git
cd ..
pm2 restart ecosystem.config.js --only $1

但我遇到了以下错误:

./deploy_project.sh: line 4: pm2: command not found

是否可以在CircleCI配置中运行我的服务器的pm2,或者我可以用另一种方式自动重新加载我的微服务?

ckx4rj1h

ckx4rj1h1#

所以,如果你想在你的服务器上使用CircleCI做任何事情,那只是浪费时间。CircleCI提供了一个虚拟环境,在那里你可以,例如,做一些测试。你也可以在你的远程服务器上推送更改,但是CircleCI将没有任何访问你的服务器系统的权限。所以,如果我们谈论pm2,你可以启用监视模式,并在每次CircleCI推送更改时重新启动你的微服务

qvsjd97n

qvsjd97n2#

将您的部署SSH密钥添加到Github(或任何远程源控制),将其链接到CircleCI,以允许CircleCI通过SSH访问您的远程服务器,并在那里运行pm2。

将SSH密钥添加到Github

对于Bitbucket等,您可以遵循类似的步骤
https://github.com/settings/ssh/new

将SSH指纹添加到CI步骤:

- add_ssh_keys:
          fingerprints:
            - "bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb"

CI将SSH连接到远程服务器并运行pm2:

steps:
      - checkout
      - run:
          name: Deploy over SSH
          command: ssh -p your_port_number your_user@your_host "cd ../path/to/your/project; git pull; pm2 start hello_sts";

我遵循了以下指南:https://scribe.rip/@blueish/how-to-setup-ci-cd-with-circleci-and-deploy-your-nodejs-project-to-a-remote-server-275a31d1f6c4
虽然它是针对Bitbucket,而不是Github。

相关问题