欢迎光临
我们一直在努力

Jenkins集成Docker

本站教程收集整理的这篇文章主要介绍了Jenkins集成Docker,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。

一、配置凭证

生成令牌

管理凭证

添加凭证

填写信息

二、全局配置

docker-compose

version: '3'
services:
  jenkins:
    restart: always
    image: jenkins:latest
    container_name: jenkins
    ports:
      - '8888:8080'
      - '50000:50000'
    volumes:
      - /home/qiang/docker-compose/jenkins/data/jenkins_home:/var/jenkins_home
      - /home/qiang/docker-compose/jenkins/data/war/jenkins.war:/usr/share/jenkins/jenkins.war

查看位置

[root@6e169b02437d jenkins_home]# pwd
/home/qiang/docker-compose/jenkins/data/jenkins_home
[root@6e169b02437d jenkins_home]# mkdir -p software/maven_home
[root@6e169b02437d jenkins_home]# mkdir -p software/jdk_home

setTings.xml

<?xml version="1.0" encoding="UTF-8"?>
<setTings xmlns="http://maven.apache.org/SETTinGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLscheR_202_11845@a-instance"
          xsi:scheR_202_11845@aLOCATIOn="http://maven.apache.org/SETTinGS/1.0.0 http://maven.apache.org/xsd/setTings-1.0.0.xsd">
  <localRepository>/var/jenkins_home/software/maven_home/repository</localRepository>

  <servers>
    <server>
        <id>nexus-public</id>
        <username>admin</username>
        <password>123456</password>
    </server>
    <server>
        <id>nexus-releases</id>
        <username>admin</username>
        <password>123456</password>
    </server>
    <server>
        <id>nexus-snapshots</id>
        <username>admin</username>
        <password>123456</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
        <id>nexus-public</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus Public</name>
        <url>http://192.168.8.245:8081/repository/maven-public/</url>
    </mirror>
  </mirrors>

  <profiles>
    <profile>  
        <id>jdk-1.8</id>  
        <activation>  
            <activeByDefault>true</activeByDefault>  
            <jdk>1.8</jdk>  
        </activation>  
        <properties>  
            <maven.compiler.source>1.8</maven.compiler.source>  
            <maven.compiler.target>1.8</maven.compiler.target>  
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
        </properties>  
    </profile>
  </profiles>
</setTings>

添加配置

三、新建任务

构建一个Maven项目

vps云服务器

输入项目地址和刚刚添加的凭证

@H_507_3@maven执行打包命令

保存并尝试构建一下

构建成功

四、远程推送

填写服务器信息

配置推送到远程服务器

推送成功

五、构建镜像

开放Docker远程API

# 编辑文件
vim /etc/systemd/system/docker.service
# 修改内容
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
# 重启服务
systemctl daemon-reload && systemctl restart docker
# 测试验证
docker -H 192.168.8.246:2375 images

jenkins链接Docker

Docker拥有的容器

准备Dockerfile

# 指定基础镜像
FROM 192.168.8.247/xiaoqiangzaI/Openjdk:8-jre
# 作者的信息
MAINTAINER wuduoqiang
# jar包的名字
ENV jar pavilion-1.0.0.jar
# 工作的目录
ENV workdir /app/
# 进入到容器后进入到哪个目录
workdir ${workdir}
# 将文件拷贝到镜像中
copY pavilion/target/${jar} ${workdir}
# 设置时区为上海
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 容器启动时候执行的命令
CMD ["sh","-ec","exec java -jar ${jar} 2>&1 >> ${workdir}msg.log"]

构建成功

推送成功

六、定时删除

镜像策略

定时任务

七、启动服务

docker-compose

version: "3.0"
services:
  pavilion:
    image: 192.168.8.247/xiaoqiangzai/pavilion:{BUILD_ID}
    container_name: pavilion
    restart: always
    privileged: true
    ports:
      - "8080:8080"

将之前推送的jar包改成推送docker-compose

启动脚本

echo "停止旧服务"
docker stop $(docker ps -aq -f 'name=pavilion') && docker rm $(docker ps -aq -f'name=pavilion')
echo "删掉旧镜像"
docker rmi $(docker images -aq -f 'reference=192.168.8.247/xiaoqiangzai/pavilion:*')
echo "启动新镜像"
eval sed -in 's#{BUILD_ID}#'$BUILD_ID'#' /home/qiang/jenkins/pavilion/docker-compose.yaml
rm -rf /home/qiang/jenkins/pavilion/docker-compose.yamln
docker-compose -f /home/qiang/jenkins/pavilion/docker-compose.yaml up -d

构建成功

上传成功

@H_419_280@

部署成功

本站总结

以上是本站教程为你收集整理的Jenkins集成Docker全部内容,希望文章能够帮你解决Jenkins集成Docker所遇到的程序开发问题。

如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。