热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一步一步打造jenkins+docker+nodejs项目的自动部署环境

一步一步打造jenkins+docker+nodejs项目的自动部署环境介绍jenkins+docker+nodejs自动部署亮点采用shell自定义脚本,控制集成部署环境更加方便
一步一步打造jenkins+docker+nodejs项目的自动部署环境

介绍

jenkins+docker+nodejs 自动部署

亮点

  • 采用shell自定义脚本,控制集成部署环境更加方便灵活
  • 如果服务器更换,重新部署的工作量会比较小
  • 涉及的docker命令,会有讲解(不知道算不算亮点)

前提

  1. 代码通过git管理,放在了码云上(放在github或者其他平台也都可以)
  2. 服务器用的亚马逊aws(阿里云,青云也一样)
  3. 服务器用的ubuntu 16.04 (服务器系统不同,只是某些shell命令不同而已,windows服务器用户,呃,我敬你是条汉子)
  4. 客户端用的mac
  5. docker镜像平台为dockerhub

准备

  1. 服务器开通SSH
  2. 服务器安装Docker
  3. 掌握基本的shell命令(本文出现的shell命令都会进行说明,cd啥的就不说了…)

开始

docker运行jenkins

  1. 服务器 安装docker
  • mac服务器安装教程
  • linux服务器安装教程
  • windows服务器安装教程
  1. 服务器拉取docker jenkins镜像:docker pull jenkins:latest
  • 拉取jenkins latest版本镜像
  • docker pull jenkins:2.7.4 拉取jenkins 2.7.4版本镜像
  1. 服务器运行dokcer jenkins容器:sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:latest

    • 这句命令的意思是:在后台运行一个基于jenkins:latest镜像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射为49002端口,并且把服务器上的/var/jenkins_node目录挂在到docker容器上的/var/jenkins_home目录
    • -d 后台运行docker容器
      • 如果不加-d则,容器运行会占用此终端,如果终端关闭,则容器也相应关闭,jenkins就无法访问了。加上-d,容器会在后台运行。
    • --name 为容器起个别名
      • 如果不起别名,则系统会默认分配一个随机别名,类似gklasd_sdfwe。起了别名后,后续会通过该别名管理该docker容器,也就是管理jenkins。
    • -p docker容器端口映射
      • jenkins服务是运行在docker里的,docker默认不对外暴露端口的
    • -v 文件挂载
      • 如果不挂载,则jenkins所有log、用户配置文件都会在docker容器内,如果容器销毁,则jenkins得重新配置一遍。挂载出来方便jenkins迁移以及管理
      • 运行成功截图

        《一步一步打造jenkins+docker+nodejs项目的自动部署环境》 jenkins run

  2. 查看你服务器上的的/var/jenkins_node文件夹,当出现下图所有文件时,则说明jenkins启动成功,否则再等等…30秒左右即可

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  3. 不出意外,浏览器访问http://host:49002 ,会出现如下界面

    • 《一步一步打造jenkins+docker+nodejs项目的自动部署环境》
    • 打开initialAdminPassword文件,复制文件内容 initialAdminPassword文件位置为:

      《一步一步打造jenkins+docker+nodejs项目的自动部署环境》 为了方便,用mac演示一下

  4. initialAdminPassword文件内容粘贴到Administrator password

  5. 如果对于jenkins比较熟悉,下面7,8自己随意

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  6. 等…

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  7. 设置admin user

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

node项目配置

  • 示例项目:https://git.oschina.net/ryzecode/HelloWorld_Node.git
  • 比正常的node项目在根目录多一个Dockerfile文件

jenkins配置

插件安装

  1. 首页,点击系统管理 –> 管理插件

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  2. 选择“可选插件”

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  3. 右上角过滤SSH,–> 选择Publish Over SSH –>点击 直接安装

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  4. 等待安装完成

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

系统设置

  1. 首页,点击系统管理 –> 系统设置

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  2. 拉到最下面找到 “Publish over SSH” , 设置服务器的SSH信息

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

项目配置

  1. 首页,点击左上角”新建”

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  2. General: 只填 项目名称即可

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  3. 源码管理: 填写Git信息

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  • 如果Git项目为私有项目,则需要点击Add添加你的Git账号,完成之后在这里选择你的Git账号

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  1. 构建环境:参照下图
  • 《一步一步打造jenkins+docker+nodejs项目的自动部署环境》
  • 图中代码如下:

    sudo docker stop node || true \
    && sudo docker rm node || true \
    && cd /var/jenkins_node/workspace/node \
    && sudo docker build --rm --no-cache=true -t node - && sudo docker run -d --name node -p 3000:3000 -v /var/jenkins_node/workspace/node:/home/project node

  1. 保存,返回到首页
  2. 选择刚刚创建的项目,点击”立即构建”
  • 此时服务器本地硬盘上,/var/jenkins_node/workspace/下应该有node(你创建的jenkins项目名)文件夹
  • /var/jenkins_node/ 目录内容应该如下图

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》 为了方便查看,继续用mac演示目录

  • 构建成功,浏览器输入 http://host:3000 应该能看到下图内容
    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

自动部署

如果想要git pull,jenkins就自动部署,那就继续往下看…

  1. jenkins –> 首页 –> 用户

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  2. 设置 –> 点击 “show API Token”

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  3. 复制API Token内容

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  4. 返回首页 –> node –> 配置 –> 构建触发器 –> 选择 “触发远程构建” –>粘贴”API Token”内容到”身份验证令牌”

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  5. 登陆git平台,找到你的项目,选择管理,选择webhook

    《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

  • URL 中 node 请替换为你在jenkins上创建的项目名称
  • token为复制的 API Token内容
  1. 此时你git push,会发现jenkins并没有自动构建,是因为jenkins的安全策略导致的,还需要如下设置
    • jenkins首页,选择 系统管理–>Configure Global Security(系统设置下面那个) 进行如下设置

      《一步一步打造jenkins+docker+nodejs项目的自动部署环境》

至此,已完成 git push 后,jenkins 自动构建自动部署。

对于Docker感兴趣,可以看下这篇文章:Docker常用命令


推荐阅读
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • gitlab+jenkins_gitlab+jenkins+docker
    gitlab+jenkins_gitlab+jenkins+docker ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
author-avatar
手机用户2602915241
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有