node.js - 将 pm2 与 CircleCI 一起使用
问题描述
我在远程 ubuntu 服务器上使用 pm2,在 CI 上使用 CircleCI,我有以下配置文件:
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,或者我可以以另一种方式自动重新加载我的微服务?
解决方案
所以,如果你想用 CircleCI 在你的服务器上做任何事情,那只是浪费时间。CircleCI 提供了一个虚拟环境,例如,您可以在其中进行一些测试。您也可以在远程服务器上推送更改,但 CircleCI 将无法访问您的服务器系统。因此,如果我们谈论 pm2,您可以启用监视模式并在每次 CircleCI 向其推送更改时重新启动您的微服务
推荐阅读
- apache-nifi - Apache Nifi 中的长时间戳不正确
- java - 如何在 Simulink 中使用 S 函数运行 Java 程序?
- batch-file - 如果找到的文件夹没有另一个同名的子文件夹,请执行操作
- node.js - 如何从谷歌助手的用户那里获取文本,并从 sqlite db 响应某些内容
- javascript - 为什么 Await 不阻塞下一行代码?
- swift - 向我的 Swift 应用程序添加了一个命令行目标,但它看不到项目的其余部分
- android - 如何在房间数据库类中获取或观察实时数据
- python - 如何使用 Python 正则表达式查找所有有字母的单词在其中出现两次?
- javascript - 我无法重新分配提示结果
- python - 使用 Series.plot() 绘制每小时数据