Docker搭建jenkins

本文介绍了如何在Docker环境下搭建Jenkins服务,包括拉取镜像、创建挂载、启动容器,并配置Jenkins以root用户运行。接着详细阐述了Jenkins的首次登陆、Maven的安装与配置,以及在Jenkins中创建流水线的过程,包括编写Pipeline脚本和相关shell脚本,用于自动化构建Docker镜像并推送到私有仓库。此外,还解决了在推送镜像到私有仓库时遇到的http错误问题。
摘要由CSDN通过智能技术生成

1 Jenkins服务搭建

1.1 拉取镜像

docker pull jenkins/jenkins

在这里插入图片描述

1.2 创建挂载

mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount

1.3 启动Jenkins容器

注:这一步要进行端口映射,以及挂在映射,其中要在jenkins容器中运行docker命令要将/var/run/docker.sock地址进行映射,并且为了避免后续的权限问题,建议以root用户启动容器

docker run -d -p 10240:8080 -p 10241:50000 --privileged --user=root -v /var/run/docker.sock:/var/run/docker.sock   -v /usr/bin/docker:/usr/bin/docker    -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime  --name jenkins jenkins/jenkins:latest

1.4 访问Jenkins页面

访问Jenkins页面,输入你的ip加上10240
在这里插入图片描述
在对应地址获取首次登陆管理员密码,并下载对应插件。

1.5 maven安装与配置

1.5.1 Maven 压缩包下载与解压

华为云下载源,自行选择版本
下面的示例使用的是 3.8.1 版本

wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz

解压 apache-maven-3.8.1-bin.tar.gz

tar -zxvf apache-maven-3.8.1-bin.tar.gz

移动到 /usr/local 目录

mv apache-maven-3.8.1 /usr/local/

1.5.2 配置环境变量

vim ~/.bashrc

在最后面追加

export MAVEN_HOME=/usr/local/apache-maven-3.8.1/
export PATH=${PATH}:${MAVEN_HOME}/bin

使环境变量生效

source ~/.bashrc

jenkins配置页面添加环境变量【重要】
系统管理–>系统配置(配置全局设置和路径)–>环境变量
在这里插入图片描述
在这里插入图片描述

2 流水线创建

2.1 创建Jenkins task

在这里插入图片描述

2.2 增加pipeline

build image阶段踩过sh "sh **.sh"的坑!!!!!

node {
   def mvnHome
   stage('Preparation') { // for display purposes
      git 'https://gitee.com/baomidou/kisso-spring-boot.git'
   }
   dir('/var/jenkins_home/workspace/spring-demo1') { // 切换到/home/jenkins目录中做一些事情
    // some block
    stage('Maven Build') { 
       sh "mvn clean package"
    }
    stage('Build Image') {
           sh "sh /var/jenkins_home/workspace/script/springboot-demo-build-image.sh"
       }
   }
}

2.3 服务端创建脚本文件

mkdir /var/jenkins_home/workspace/scripts/
vim /var/jenkins_home/workspace/scripts/springboot-demo-build-image.sh

2.4 编写springboot-demo-build-image.sh

# 进入到springboot-demo目录
cd ../spring-demo1
# 编写Dockerfile文件
cat <<EOF > Dockerfile
FROM openjdk:8-jre-alpine
COPY target/kisso_springboot-0.0.1-SNAPSHOT.jar /springboot-demo.jar
ENTRYPOINT ["java","-jar","/springboot-demo.jar"]
EOF
echo "Dockerfile created successfully!"
# 基于指定目录下的Dockerfile构建镜像
docker build -t 192.168.1.100:5000/springboot-demo:v1.0 .
# push镜像,这边需要阿里云镜像仓库登录,在当前安装了jenkins主机上登录
docker push 192.168.1.100:5000/springboot-demo:v1.0

【注意】这里的docker仓库是自己创建的私服,创建方法为
docker创建私有仓库
若直接将镜像push到私服地址,会报错:

http: server gave HTTP response to HTTPS client

解决办法:
linux容器:

#增加一个daemon.json文件
vim  /etc/docker/daemon.json    

在/etc/docker/daemon.json中加入

{ "insecure-registries":["192.168.1.100:5000"] } 

然后重启docker服务

systemctl daemon-reload
systemctl restart docker

windows下的docker:
在这里插入图片描述

2.5 立即构建

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值