当前位置:   article > 正文

Docker安装jenkins,并且创建maven任务_docker下jenkins配置maven

docker下jenkins配置maven

    Jenkins是持续开发部署得软件。,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它是CICD(持续集成与持续交付)的具体实现。

包括:打包,发布,部署流程。

Jenkins有很多插件,比如git,svn,maven,pipeline等插件。

我主要创建了maven项目,所以只需要安装git和maven安装要注意下面几点: 

  • maven一定要安装在jenkins服务器上。
  • maven安装之前要先安装jdk。
  • 建任务前,需要有git环境,并配置好用户名密码。

1.创建docker jenkins容器

新建一个dockerfile文件

  1. from java_ubuntu
  2. user root
  3. run pwd
  4. run curl -fsSL "https://pkg.jenkins.io/debian-stable/jenkins.io.key" | tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
  5. 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
  6. run apt-get update
  7. run apt-get install fontconfig openjdk-11-jre
  8. run apt-get install jenkins
  9. ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
  10. Env JENKINS_HOME=/var/jenkins_home
  11. WORKDIR /
  12. EXPOSE 8080 50000
  13. cmd jenkins

然后执行镜像构建命令

docker build -t docker_jenkins ./ -f dockerfile-jenkins

2.启动docker jenkins容器

使用docker-compose编排容器,docker-compose -f .\docker-jekins.yml up -d

  1. version: "3.0"
  2. volumes:
  3. jenkins_home: #自动创建的是projectname_volumename (dockerjekins_jenkins_home)
  4. maven_home: #自动创建的是projectname_volumename (dockerjekins_maven_home)
  5. networks:
  6. mynetwork:
  7. external: true
  8. services:
  9. image: docker_jenkins
  10. container_name: docker_jenkins
  11. ports:
  12. - 10240:8080
  13. - 10241:50000
  14. volumes:
  15. - jenkins_home:/var/jenkins_home
  16. - maven_home:/usr/local/maven
  17. environment:
  18. - JAVA_OPTS=-Duser.timezone=Asia/Shanghai
  19. networks:
  20. - mynetwork

3.访问jenkins

3.1 登录jenkins

浏览器输入http://localhost:10240/,密码可以在容器日志中查看,也可以进入容器在/var/jenkins_home/secrets/initialAdminPassword文件中查看。

 登录完成之后可以选择安装推荐插件或者选择插件,这里我就不选择安装了,直接跳过。

可以在Manage Jenkins中设置用户,安装插件。

因为没安装任何插件所以创建不了其他的任务。

3.2 jenkins 安装git和maven插件

在Manage Jenkins-> Manage Plugin中安装git和maven

git插件:

maven插件(Maven IntegrationVersion): 

 安装完成之后就可以在New Item中看见Maven的任务

                这时候创建的maven的项目, 并不能使用maven打包,编译等操作需要在jenkins服务器(容器)上安装gt和maven。

4.jenkins服务器上安装git和maven

这里安装的git和maven程序,不是上一步中的jenkins的git插件和maven插件

使用docker exec -it docker_jenkins /bin/bash进入到容器上

  1. #安装git和maven
  2. apt-get install -y git maven
  3. #git的安装目录在/usr/lib/git-core
  4. #maven的安装目录在/usr/share/maven

配置git账户和密码,配置完成之后可以在jenkins服务器(容器)上验证是否可以正常pull代码

  1. 1.查看本地配置
  2. git config --list
  3. 2.配置用户名
  4. git config --global user.name 用户名
  5. 3.配置邮箱
  6. git config --global user.email 邮箱
  7. 4.配置密码
  8. git config --global credential.helper store
  9. 5.打开任意一个项目,执行git pull 或者git push操作
  10. 6.按照提示输入账户密码,以后就不需要再输入了。

配置maven下的setting.xml,将源改成alibaba的

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <localRepository>/usr/share/maven/mavenLibTemp</localRepository>
  6. <pluginGroups>
  7. </pluginGroups>
  8. <proxies>
  9. </proxies>
  10. <servers>
  11. </servers>
  12. <!-- 阿里云仓库,也可以在pom中设置仓库地址 -->
  13. <mirrors>
  14. <mirror>
  15. <id>aliyun</id>
  16. <name>aliyun Maven</name>
  17. <mirrorOf>*</mirrorOf>
  18. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  19. </mirror>
  20. </mirrors>
  21. <profiles>
  22. </profiles>
  23. <activeProfiles>
  24. </activeProfiles>
  25. </settings>

 5.jenkins中设置全局工具配置

Manage Jenkins->Global Tool Configuration

这里的路径都是jenkins服务器(容器)的实际路径

5.1 Maven (setting.xml文件)

5.3 JDK

 5.3 Git

5.4 Maven 

 6.“系统配置”,增加环境变量

Manage Jenkins->Configure System

 7.Jenkins中新建maven项目

在新建的testmaven对新建的项目进行配置

1)Source Code Management (源码配置)

 2)Build (编译)

  7.1 在jenkins上运行编译

在testmaven中启动编译

在Console Output可以看到运行日志并且依赖源也是配置的alibaba

最终可以看到编译成功的信息

 7.2 在jenkins上编译之后部署

上边步骤8只是编译了jar包,如果需要部署,则需要在jenkins页面上安装ssh插件.

1. 插件安装完成之后可以执行一下发布操作.

 2.docker_jenkins安装Docker 

先docker_jenkins容器,然后执行docker 安装

  1. apt-get -o Acquire::Check-Valid-Until=false update
  2. apt-get install -y ca-certificates curl gnupg lsb-release
  3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. 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
  5. apt-get install -y --allow-unauthenticated docker-ce docker-ce-cli containerd.io

查看Docker # 发现只有 Docker Engine docker version 

docker version

 然后提交保存镜像

  1. # 保存当前镜像
  2. docker commit -a "bpf" -m "add docker and tools" ub1 dockerubuntu
  3. # 运行新的容器
  4. docker run -it --name ub2 --hostname docker1 \
  5. -v /var/run/docker.sock:/var/run/docker.sock \
  6. --network mynet dockerubuntu

 3.maven build之后执行docker build操作

  1. #!/bin/bash
  2. echo "----pwd---"
  3. pwd
  4. echo "----docker build---"
  5. docker build -t cloud-producter-two ./client/producter/producter-two/target -f ./client/producter/producter-two/dockerfile
  6. A=`docker images --format "{{.Repository}}:{{.ID}}" | grep "none" |awk -F ':' '{print $2}'|wc -l`
  7. if [ $A -ne 0 ];then
  8. docker rmi $(docker images --format "{{.Repository}}:{{.ID}}" | grep "none" |awk -F ':' '{print $2}')
  9. fi

 8.Jenkins上执行Pipeline

  1. Pipeline脚本是由Groovy语言实现,它支持支持两种语法
  2. Declarative 声明式(在Pipeline plugin 2.5中引入)
  3. Scripted Pipeline 脚本式

首先安装pipeline插件,创建任务时就可以创建pipeline的任务了

pieline语法类似:

  1. pipeline {
  2. agent any
  3. tools {
  4. // Install the Maven version configured as "M3" and add it to the path.
  5. maven "M3"
  6. }
  7. stages {
  8. stage('Build') {
  9. steps {
  10. // Get some code from a GitHub repository
  11. git 'https://github.com/jglick/simple-maven-project-with-tests.git'
  12. // Run Maven on a Unix agent.
  13. sh "mvn -Dmaven.test.failure.ignore=true clean package"
  14. // To run Maven on a Windows agent, use
  15. // bat "mvn -Dmaven.test.failure.ignore=true clean package"
  16. }
  17. post {
  18. // If Maven was able to run the tests, even if some of the test
  19. // failed, record the test results and archive the jar file.
  20. success {
  21. junit '**/target/surefire-reports/TEST-*.xml'
  22. archiveArtifacts 'target/*.jar'
  23. }
  24. }
  25. }
  26. }
  27. }

总结:

jenkins实际就是页面插件调用后端(服务器上)工具的命令组合。

参考:

jenkins安装及部署 - 软件老王 - 博客园

docker安装jenkins_hzp666的博客-CSDN博客_docker安装jenkins

jenkins中maven的安装及配置,如何在jenkins中创建maven任务。_大敌的博客-CSDN博客_jenkins maven

https://www.cnblogs.com/bpf-1024/p/15489354.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/849691
推荐阅读
相关标签
  

闽ICP备14008679号