jenkins docker springcloud 自动化

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80632522 由于公司要做微服务所以我对jenkins docker springcloud如何集成起来做自动部署做了一些研究,这里写出来也算是结自己一个总结,同时也希望能帮助到其他人。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80632522

由于公司要做微服务所以我对jenkins docker springcloud如何集成起来做自动部署做了一些研究,这里写出来也算是结自己一个总结,同时也希望能帮助到其他人。

  我这里环境如下:

  1.  Contos7 64
  2. jdk-8u144-linux-x64.tar.gz
  3. jenkins.war 2.78
  4. docker
  5. gitlab
  6. maven
  7. git
因为jenkins是java 编写的所以需要安装jdk安装步骤很简单这大概也就是一步:


  • 进入jdk的目录  cd /usr/local 我这里是/usr/local这个目录
  • 查看目录下文件 ls -il
  • 解压jdk tar zxvf jdk-8u144-linux-x64.tar.gz
  • 配置jdk 编辑profile 文件加入jdk 环境变量 vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_144
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

  • 使用source命令使配置生效 source /etc/profile
  • 这时我们来执行 java -version 出现下面这个就说明配置成功了。

  • 接下来我们就可以安装jenkins了首选需要下载jenkins 下载地址 http://updates.jenkins-ci.org/download/war/
  • 下载后将jenkins.war上传到 /usr/local
  • 到jenkins.war 目录下 执行 java -jar jenkins.war 或者是 java -jar httpPort=8080(这里可以指定怎么想指定的端口) jenkins.war jenkins 默认是8080
  • 因为liunx 系统没有开放8080端口所以要开放8080端口 firewall-cmd --add-port=8080/tcp --permanent
  • 重新加载防火墙配置 firewall-cmd --reload
  • 这时在浏览器访问 http://ip:8080 就可以看到
  • 这是jenkins为我们自动生成的一个密钥 这个密钥可以在控制台找到 当然也可以去 这个目录下找到/root/.jenkins/secrets/initialAdminPassword这里我们到控制台去找
  • 将这个密钥复制到文本框 点击Continue 就可以看到这个页面
  • 这里这们选择推荐(install suggested plugins)这时可以看到已经在安装插件
  • 安装完成后需要创建一个管理员账户 填写完成后点击 Save and finish
  • 当进入下面这个页面后jenkins就算是安装完成了

  • docker 的安装我这里是安官网的安装这里就不做请说明。请参考官网 https://docs.docker.com/engine/installation/linux/docker-ce/centos/#install-using-the-repository
  • maven 安装 首先要下载一上maven 的安装文件 使用wget下载 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
  • 下载完成后解压 maven :tar zxvf apache-maven-3.5.0-bin.tar.gz
  • 配置MAVEN_HONE 环境变量
  • 编辑 vim /etc/profile 加入下面这两句
export  MAVEN_HOME=/usr/local/apache-maven-3.5.0
export PATH=$PATH:$MAVEN_HOME/bin

 

  • 配置生效 source /etc/profile
  • 执行mvn -version 看到如果图说明配置成功

  • 配置阿里云的maven repository 进入 maven conf目录下 cd /usr/local/apache-maven-3.5.0/conf
  • 编辑settings.xml加入阿里云的maven仓库 vimsettings.xml
 <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>


  • 安装git yum install -y git
  • 安装完成执行 git --version

  • 接下来进入主题来构建我们的第一个项目
1.在jenkins中创建一个新任务


2.构建一个自由风格的软件项目


3.配置项目构建信息

1)配置git
2)配置git web hook 安装 gitlab hook plugin
系统管理 -> 插件管理 -> 可选插件 -> 搜索 gitlab hook plugin -> 选中安装


首先说明我这里用的是私有的gitlab 如果你的机器可以公网访问那么你可以使用github 或 码云 。搭建私有gitlab请看 http://www.imooc.com/article/17128?block_id=tuijian_wz
进入点击generate生成一个token 复制 http://192.168.189.139:8080/project/microservice-discovery 进入 gitlab
Settings -> Integrations -> 添加url和 token


3)配置构建环境

maven构建 增加构建步骤 -> invoker top-level-Maven targets
构建命令 clean package

shell 脚本 增加构建步骤 -> Execute shell


构建前我们需要设置一下docker 的regitry通过不安全的http访问 地址以及阿里云加速器 vim /usr/lib/systemd/system/docker.service 加入如下
--registry-mirror=https://aj2rgad5.mirror.aliyuncs.com --insecure-registry 192.168.189.133:5000
完成已上步骤我们点构建就可以构建我们的项目了 从下图中可以看到已经开始在构建



构建完成后我们访问http://192.168.189.139:8761就可以看到springcloud eureak的管理页了


构建脚本如下:
#!/bin/bash
REGISTRY_URL=192.168.189.133:5000
WORK_DIR=/root/work_build
PROJECT_NAME=microservice-provider
PROJECT_VERSION=0.0.1
if [ ! -e ${WORK_DIR}/${PROJECT_NAME} ] && [ ! -d ${WORK_DIR}/${PROJECT_NAME} ]; then
mkdir -p ${WORK_DIR}/${PROJECT_NAME}
echo "Create Dir: ${WORK_DIR}/${PROJECT_NAME}"
fi
if [ -e ${WORK_DIR}/${PROJECT_NAME}/Dockerfile ]; then
rm -rf ${WORK_DIR}/${PROJECT_NAME}/Dockerfile
echo "Remove File: ${WORK_DIR}/${PROJECT_NAME}/Dockerfile"
fi
cp ./Dockerfile ${WORK_DIR}/${PROJECT_NAME}/
cp ./target/*.jar ${WORK_DIR}/${PROJECT_NAME}/
cd ${WORK_DIR}/${PROJECT_NAME}/
docker build -t ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION} .
docker push ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION}
if docker ps -a | grep ${PROJECT_NAME}; then
docker rm -f ${PROJECT_NAME}
echo "Remove Docker Container: ${PROJECT_NAME}"
fi
docker run -d -p 8761:8761 --name ${PROJECT_NAME} ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION}
相关文章
|
17天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
36 9
|
15天前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
35 5
|
23天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
2月前
|
Kubernetes 持续交付 Docker
探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
【10月更文挑战第18天】探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
99 2
|
2月前
|
监控 jenkins 持续交付
Docker和Jenkins有什么不同
【10月更文挑战第18天】Docker和Jenkins有什么不同
|
2月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
129 1
|
2月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
2月前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
2月前
|
Ubuntu jenkins 持续交付
Ubuntu系统 用docker安装jenkins
Ubuntu系统 用docker安装jenkins