Docker 平台的 Jenkins 安装与 Node.js 应用部署指南
2024-02-09 16:29:40
正文
在当今敏捷开发和持续集成(CI)的时代,自动化构建和部署工具对于软件开发团队至关重要。Jenkins 作为一款流行的开源 CI 工具,凭借其强大的可扩展性和丰富的插件生态系统,被广泛应用于各种软件项目中。Docker 则是另一个备受欢迎的工具,它可以将应用程序及其依赖项打包成独立的容器,便于在不同环境中运行。
本文将指导您在 Docker 平台中安装和配置 Jenkins,并利用 Jenkins 自动化 Node.js 前端和后端服务的打包和部署过程。我们将从安装 Docker 和 Jenkins 开始,逐步介绍如何配置 Jenkins 构建作业、添加构建步骤、设置远程服务器连接信息,最终实现 Node.js 应用的持续集成和部署。
1. Docker 与 Jenkins 的安装
1.1 Docker 安装
1.1.1 安装 Docker CE(社区版)
首先,我们按照 Docker 官方网站提供的说明,在您的服务器上安装 Docker CE。对于 Ubuntu 系统,您可以通过以下命令安装:
sudo apt-get update
sudo apt-get install docker-ce docker-compose
1.1.2 启动 Docker 服务
安装完成后,启动 Docker 服务:
sudo systemctl start docker
1.2 Jenkins 安装
1.2.1 安装 Jenkins
在继续之前,确保您已安装 Java 8 或更高版本。然后,我们按照 Jenkins 官方网站提供的说明,在您的服务器上安装 Jenkins。对于 Ubuntu 系统,您可以通过以下命令安装:
sudo apt-get update
sudo apt-get install jenkins
1.2.2 启动 Jenkins 服务
安装完成后,启动 Jenkins 服务:
sudo systemctl start jenkins
1.2.3 配置 Jenkins
在浏览器中输入 http://localhost:8080 访问 Jenkins 主页,按照提示完成初始化配置。您可能需要创建一个管理员用户并设置密码。
2. 配置 Jenkins 构建作业
2.1 新建构建作业
在 Jenkins 主页中,点击左侧菜单栏的 "新建任务" 按钮。在 "作业名称" 输入框中,输入您的构建作业的名称,例如 "Node.js 应用部署"。
2.2 选择项目类型
在 "项目类型" 选择框中,选择 "构建自由风格软件项目"。然后,点击 "确定" 按钮创建新的构建作业。
2.3 配置构建触发器
在构建作业的配置页面中,点击左侧菜单栏的 "构建触发器" 选项卡。在这里,您可以选择触发构建作业的方式。我们通常使用 "GitHub" 触发器,它允许您在代码推送到 GitHub 仓库时自动触发构建作业。
2.4 配置源代码管理
点击左侧菜单栏的 "源代码管理" 选项卡。在 "仓库 URL" 输入框中,输入您的 GitHub 仓库的 URL。在 "凭证" 下拉框中,选择您在 GitHub 上创建的 Jenkins 用户凭证。
2.5 配置构建步骤
点击左侧菜单栏的 "构建步骤" 选项卡。在这里,您可以添加构建步骤,定义在构建作业中要执行的操作。
2.5.1 安装依赖项
添加一个 "Execute Shell" 构建步骤,在 "命令" 输入框中输入以下命令来安装 Node.js 依赖项:
npm install
2.5.2 构建 Node.js 前端
添加另一个 "Execute Shell" 构建步骤,在 "命令" 输入框中输入以下命令来构建 Node.js 前端:
npm run build
2.5.3 构建 Node.js 后端
再添加一个 "Execute Shell" 构建步骤,在 "命令" 输入框中输入以下命令来构建 Node.js 后端:
npm run build-backend
2.6 配置构建后操作
点击左侧菜单栏的 "构建后操作" 选项卡。在这里,您可以添加构建后操作,定义在构建作业完成时要执行的操作。
2.6.1 存档构建产物
添加一个 "Archive the artifacts" 构建后操作,在 "Files to archive" 输入框中输入以下内容:
dist/**/*
这将把构建产物(即构建后生成的代码)存档到 Jenkins 的工作空间中。
2.7 保存构建作业
点击 "保存" 按钮保存构建作业配置。
3. 设置远程服务器连接信息
3.1 安装 SSH 密钥
为了能够通过 SSH 将构建产物部署到远程服务器,我们需要在本地生成 SSH 密钥并将其添加到远程服务器中。
3.1.1 生成 SSH 密钥
在终端中,运行以下命令生成 SSH 密钥:
ssh-keygen -t rsa
按照提示输入密钥的保存路径和密码(密码可以为空)。
3.1.2 添加 SSH 密钥到远程服务器
将生成的 SSH 公钥(~/.ssh/id_rsa.pub)复制到远程服务器的 ~/.ssh/authorized_keys 文件中。
3.2 配置 Jenkins SSH 凭证
在 Jenkins 中,点击左侧菜单栏的 "凭证" 选项卡。点击 "添加凭证" 按钮,选择 "SSH Username with Private Key" 凭证类型。
在 "凭证 ID" 输入框中输入凭证的名称,例如 "Remote Server SSH Key"。在 "Username" 输入框中输入远程服务器的用户名。在 "Private Key" 输入框中输入生成的 SSH 私钥(~/.ssh/id_rsa)。
3.3 配置 Jenkins SSH 节点
在 Jenkins 中,点击左侧菜单栏的 "管理 Jenkins" 选项卡。在 "系统设置" 下,点击 "节点" 选项卡。
点击 "添加新节点" 按钮,选择 "Remote" 节点类型。
在 "节点名称" 输入框中输入节点的名称,例如 "Remote Server"。在 "Remote FS Root" 输入框中输入远程服务器的文件系统根目录,例如 "/home/user/app