Docker搭建jenkins

1 Jenkins服务搭建

1.1 拉取镜像

docker pull jenkins/jenkins

Docker搭建jenkins_第1张图片

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
Docker搭建jenkins_第2张图片
在对应地址获取首次登陆管理员密码,并下载对应插件。

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配置页面添加环境变量【重要】
系统管理–>系统配置(配置全局设置和路径)–>环境变量
Docker搭建jenkins_第3张图片
Docker搭建jenkins_第4张图片

2 流水线创建

2.1 创建Jenkins task

Docker搭建jenkins_第5张图片

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:
Docker搭建jenkins_第6张图片

2.5 立即构建

Docker搭建jenkins_第7张图片

你可能感兴趣的:(jenkins,jenkins,docker,运维)