cd /var/run
chmod 777 docker.sock
由于对该文件没有操作权限,对该文件添加权限,便可执行docker命令
shell脚本
# jenkins下的目录
JENKINS_HOME=/var/lib/jenkins/workspace/hys
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=hys
echo "----------------------------脚本开始执行"
echo "开始编译和打包"
mvn clean package
echo "编译打包结束"
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "----------------------------查看当前运行容器"
docker ps
echo "----------------------------查看当前所有镜像"
docker images
echo "----------------------------停止容器kang01_1204"
docker stop kang01-1204 |true
echo "----------------------------删除容器kang01_1204"
docker rm kang01-1204 |true
echo "----------------------------删除镜像名称中包含images的镜像"
docker images | grep images | awk '{print $3}' | xargs docker rmi |true
echo "----------------------------创建新的镜像images"
docker build -t images .
echo "----------------------------根据新的镜像images,来生成新的容器kang01_1204"
docker run -d -p 9001:9001 -v /home/hys/logs:/home/hys/logs -v /home/hys/uploadPath:/home/hys/uploadPath --name kang01-1204 -itd images
echo "----------------------------查看当前最新运行的容器"
docker ps
echo "----------------------------查看当前最新的镜像版本"
docker images
Pipeline 声明式脚本
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '75bda64b-8577-45bd-9b64-4d8003dad319', url: 'https://gitee.com/KWTXXB/laboratory.git']]])
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
stage('publish project') {
steps {
sh '''
JENKINS_HOME=/var/lib/jenkins/workspace/hys
JAR_NAME=hys
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
echo "看看docker能不能用"
docker -v
echo "----------------------------查看当前运行容器"
docker ps
echo "----------------------------查看当前所有镜像"
docker images
echo "----------------------------停止容器kang01_1204"
docker stop kang01-1204 |true
echo "----------------------------删除容器kang01_1204"
docker rm kang01-1204 |true
echo "----------------------------删除镜像名称中包含images的镜像"
docker images | grep images | awk \'{print $3}\' | xargs docker rmi |true
echo "----------------------------创建新的镜像images"
docker build -t images .
echo "----------------------------根据新的镜像images,来生成新的容器kang01_1204"
docker run -d -p 9001:9001 -v /home/hys/logs:/home/hys/logs -v /home/hys/uploadPath:/home/hys/uploadPath --name kang01-1204 -itd images
echo "----------------------------查看当前最新运行的容器"
docker ps
echo "----------------------------查看当前最新的镜像版本"
docker images'''
}
}
}
}
ssh远程部署配置
Source files:选择要复制的文件路径
Remove prefix:删除文件之前的路径,只传输当前文件到指定路径下
Remove directory:选择远程服务器所要进入的路径是
Exec command:将jar报复制到指定路径后,所要执行的脚步及命令