寫一步,測一步
坑1:由于安裝jenkins時沒有找到mvn插件,所以提示mvn命令不存在,需要再安裝一下,安裝完重啟
坑2.對于java web 多模塊項目,要改一下父工程下pom,module的路徑./ylk-security-core等
坑3:jenkins服務器下的docker ->/etc/docker/daemon.json,以及harbor下的docker ->/etc/docker/daemon.json,都要進行
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"],
"insecure-registry": ["192.168.0.91:5000"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
注意:安裝jenkins這臺機器上也要安裝docker
#!groovy
pipeline {
agent any
environment {
REPOSITORY="ssh://git@192.168.0.91:2222/ckip/cd_project.git"
SHELL_PATH="/usr/local/myshell"
MODULE="ylk-server"
}
stages {
stage('獲取代碼為mvn構建') {
steps {
echo "start fetch code from git:${REPOSITORY}"
deleteDir()
git "${REPOSITORY}"
}
}
stage('代表靜態檢查') {
steps {
echo "start code check"
}
}
stage('使用mvn打包編譯+單元測試') {
steps {
echo "start compile"
sh "mvn clean package -Dmaven.test.skip=true"
}
}
stage('構建image') {
steps {
echo "start build image"
sh "${SHELL_PATH}/build-image.sh ${MODULE}"
}
}
}
}
build-image.sh 在對應文件下用vim創建,并且chmod
build-image.sh 在對應文件下用vim創建,并且chmod
#!/bin/bash
MODULE=$1
TIME=`date "+%Y%m%d%H%M"`
GIT_VERSION=`git log -1 --pretty=format:"%h"`
IMAGE_NAME=192.168.0.91/cd_project/${MODULE}:${TIME}_${GIT_VERSION}
cd ${MODULE}
docker build -t ${IMAGE_NAME} .
docker login 192.168.0.91 -u lhbjava -p Harbor12345
docker push ${IMAGE_NAME}