有几个步骤可以将 Node.js API 连接到 VM,
首先,我们需要克隆我们将部署到 Azure VM 的项目。这个项目是一个基本的 Node.js API,带有一个用于返回 todo 对象数组的端点。转到您要存储项目的位置并克隆它:
git clone --single-branch --branch base-project https://github.com/coderonfleek/node-azure-vm.git
克隆项目后,进入项目根目录并安装依赖项:
cd node-azure-vm
npm install
使用npm run dev 命令运行应用程序。该应用程序将在地址http://localhost:5000 启动。当应用程序启动并运行时,在浏览器中输入http://localhost:5000/todos 以查看todos 的列表。
enter image description here
现在,转到您项目的 package.json 文件并将这些脚本添加到 scripts 部分:
"scripts": {
.....,
"stop": "pm2 kill",
"start": "pm2 start server.js"
}
start 和 stop 脚本将使用 pm2 进程管理器来启动和停止 VM 上的 Node.js 应用程序。设置完成后,pm2 脚本将全局安装在 VM 上。
在项目的根目录下,运行rm -rf .git 命令删除所有.git 历史记录。然后push the project to GitHub。确保这是连接到您的 CircleCI 帐户的 GitHub 帐户。
然后,在 Azure 上设置一个虚拟机来运行 Node.js。
接下来,在 Azure 上创建一个新 VM,并设置其环境以托管 Node.js 应用程序。步骤如下:
- 创建一个新的虚拟机实例
- 安装nginx
- 将
nginx 配置为代理服务器。将所有流量路由到 VM 上的端口 80 到端口 5000 上正在运行的 Node.js 应用程序实例
- 在 VM 上安装 Node.js 并将应用程序从 GitHub 存储库克隆到 VM 中的文件夹中
- 全局安装
pm2
不要被这些步骤的复杂性吓倒!您可以使用一个命令完成所有五个。在项目的根目录下,创建一个名为cloud-init-github.txt 的新文件;这是一个cloud-init 文件。 Cloud-init 是云实例初始化的行业标准方法。
云初始化代码
(请参阅以下链接了解完整详情)
https://circleci.com/blog/cd-azure-vm/