赞
踩
Jenkins是持续开发部署得软件。,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它是CICD(持续集成与持续交付)的具体实现。
包括:打包,发布,部署流程。
Jenkins有很多插件,比如git,svn,maven,pipeline等插件。
我主要创建了maven项目,所以只需要安装git和maven安装要注意下面几点:
新建一个dockerfile文件
- from java_ubuntu
-
- user root
-
- run pwd
-
- run curl -fsSL "https://pkg.jenkins.io/debian-stable/jenkins.io.key" | tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
-
- run echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | tee /etc/apt/sources.list.d/jenkins.list > /dev/null
-
- run apt-get update
-
- run apt-get install fontconfig openjdk-11-jre
-
- run apt-get install jenkins
-
- ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- Env JENKINS_HOME=/var/jenkins_home
-
- WORKDIR /
-
- EXPOSE 8080 50000
-
- cmd jenkins

然后执行镜像构建命令
docker build -t docker_jenkins ./ -f dockerfile-jenkins
使用docker-compose编排容器,docker-compose -f .\docker-jekins.yml up -d
- version: "3.0"
-
- volumes:
- jenkins_home: #自动创建的是projectname_volumename (dockerjekins_jenkins_home)
- maven_home: #自动创建的是projectname_volumename (dockerjekins_maven_home)
-
- networks:
- mynetwork:
- external: true
-
- services:
- image: docker_jenkins
- container_name: docker_jenkins
- ports:
- - 10240:8080
- - 10241:50000
- volumes:
- - jenkins_home:/var/jenkins_home
- - maven_home:/usr/local/maven
- environment:
- - JAVA_OPTS=-Duser.timezone=Asia/Shanghai
- networks:
- - mynetwork

浏览器输入http://localhost:10240/,密码可以在容器日志中查看,也可以进入容器在/var/jenkins_home/secrets/initialAdminPassword文件中查看。
登录完成之后可以选择安装推荐插件或者选择插件,这里我就不选择安装了,直接跳过。
可以在Manage Jenkins中设置用户,安装插件。
因为没安装任何插件所以创建不了其他的任务。
在Manage Jenkins-> Manage Plugin中安装git和maven
git插件:
maven插件(Maven IntegrationVersion):
安装完成之后就可以在New Item中看见Maven的任务
这时候创建的maven的项目, 并不能使用maven打包,编译等操作需要在jenkins服务器(容器)上安装gt和maven。
这里安装的git和maven程序,不是上一步中的jenkins的git插件和maven插件
使用docker exec -it docker_jenkins /bin/bash进入到容器上
- #安装git和maven
- apt-get install -y git maven
-
- #git的安装目录在/usr/lib/git-core
- #maven的安装目录在/usr/share/maven
-
配置git账户和密码,配置完成之后可以在jenkins服务器(容器)上验证是否可以正常pull代码
- 1.查看本地配置
- git config --list
- 2.配置用户名
- git config --global user.name 用户名
- 3.配置邮箱
- git config --global user.email 邮箱
- 4.配置密码
- git config --global credential.helper store
- 5.打开任意一个项目,执行git pull 或者git push操作
- 6.按照提示输入账户密码,以后就不需要再输入了。
配置maven下的setting.xml,将源改成alibaba的
- <?xml version="1.0" encoding="UTF-8"?>
-
- <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
- <localRepository>/usr/share/maven/mavenLibTemp</localRepository>
- <pluginGroups>
- </pluginGroups>
-
- <proxies>
- </proxies>
-
- <servers>
- </servers>
-
- <!-- 阿里云仓库,也可以在pom中设置仓库地址 -->
- <mirrors>
- <mirror>
- <id>aliyun</id>
- <name>aliyun Maven</name>
- <mirrorOf>*</mirrorOf>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- </mirror>
- </mirrors>
-
- <profiles>
- </profiles>
-
- <activeProfiles>
- </activeProfiles>
- </settings>

Manage Jenkins->Global Tool Configuration
这里的路径都是jenkins服务器(容器)的实际路径
Manage Jenkins->Configure System
在新建的testmaven对新建的项目进行配置
1)Source Code Management (源码配置)
2)Build (编译)
在testmaven中启动编译
在Console Output可以看到运行日志并且依赖源也是配置的alibaba
最终可以看到编译成功的信息
上边步骤8只是编译了jar包,如果需要部署,则需要在jenkins页面上安装ssh插件.
1. 插件安装完成之后可以执行一下发布操作.
2.docker_jenkins安装Docker
先docker_jenkins容器,然后执行docker 安装
- apt-get -o Acquire::Check-Valid-Until=false update
-
- apt-get install -y ca-certificates curl gnupg lsb-release
-
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
-
- apt-get install -y --allow-unauthenticated docker-ce docker-ce-cli containerd.io
查看Docker # 发现只有 Docker Engine docker version
docker version
然后提交保存镜像
- # 保存当前镜像
- docker commit -a "bpf" -m "add docker and tools" ub1 dockerubuntu
- # 运行新的容器
- docker run -it --name ub2 --hostname docker1 \
- -v /var/run/docker.sock:/var/run/docker.sock \
- --network mynet dockerubuntu
3.maven build之后执行docker build操作
- #!/bin/bash
- echo "----pwd---"
- pwd
- echo "----docker build---"
- docker build -t cloud-producter-two ./client/producter/producter-two/target -f ./client/producter/producter-two/dockerfile
- A=`docker images --format "{{.Repository}}:{{.ID}}" | grep "none" |awk -F ':' '{print $2}'|wc -l`
- if [ $A -ne 0 ];then
- docker rmi $(docker images --format "{{.Repository}}:{{.ID}}" | grep "none" |awk -F ':' '{print $2}')
- fi
首先安装pipeline插件,创建任务时就可以创建pipeline的任务了
pieline语法类似:
- pipeline {
- agent any
-
- tools {
- // Install the Maven version configured as "M3" and add it to the path.
- maven "M3"
- }
-
- stages {
- stage('Build') {
- steps {
- // Get some code from a GitHub repository
- git 'https://github.com/jglick/simple-maven-project-with-tests.git'
-
- // Run Maven on a Unix agent.
- sh "mvn -Dmaven.test.failure.ignore=true clean package"
-
- // To run Maven on a Windows agent, use
- // bat "mvn -Dmaven.test.failure.ignore=true clean package"
- }
-
- post {
- // If Maven was able to run the tests, even if some of the test
- // failed, record the test results and archive the jar file.
- success {
- junit '**/target/surefire-reports/TEST-*.xml'
- archiveArtifacts 'target/*.jar'
- }
- }
- }
- }
- }

总结:
jenkins实际就是页面插件调用后端(服务器上)工具的命令组合。
参考:
docker安装jenkins_hzp666的博客-CSDN博客_docker安装jenkins
jenkins中maven的安装及配置,如何在jenkins中创建maven任务。_大敌的博客-CSDN博客_jenkins maven
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。