環(huán)境:
1.ubuntu18
2.docker
3.jenkins
4.gitlab項(xiàng)目
jenkins插件配置
Jenkins要實(shí)現(xiàn)持續(xù)集成自動部署需要安裝 :
1.Publish Over SSH
2.gitlab
Git等幾個插件

插件管理

查看已經(jīng)安裝的插件
jenkins上集成gitlab插件
系統(tǒng)配置-->系統(tǒng)配置-->Gitlab

gitlab設(shè)置
host url填寫gitlab服務(wù)器地址
Credentials配置如下

image.png
api token從gitlab 用戶設(shè)置中獲取,如下圖

image.png
設(shè)置SSH:Publish over SSH

image.png
同時配置服務(wù)器的ssh賬號密碼
設(shè)置jenkins的JDK
一開始使用ubuntu的jdk地址,報(bào)錯 (jdk path) is not a directory on the Jenkins master (but perhaps it exists on some agents)

image.png
如果出現(xiàn)以上問題,就需要將本地的jdk掛載到j(luò)enkins容器后重啟
啟動:
-v命令進(jìn)行掛載,其中冒號前面的是本機(jī)的目錄,將本機(jī)的javahome和mavenhome的路徑,掛載到Jenkins容器上,冒號后面是容器上的目錄,可以寫跟本機(jī)目錄相同。
docker ps
docker stop 4fe6ce853e7c(CONTAINER ID)
docker run -d --name jenkins_01 -p 8081:8080 -v /usr/lib/jvm/java-8-openjdk-amd64/bin/java:/usr/lib/jvm/java-8-openjdk-amd64/bin/java -v /usr/lib/jvm/java-8-openjdk-amd64:/usr/lib/jvm/java-8-openjdk-amd64 -v /home/jenkins_01:/home/jenkins_01 jenkins:jenkins:latest
或者勾選自動安裝
添加不同的gitlab認(rèn)證方式

image.png
配置git地址

image.png
加入maven命令

image.png
配置ssh傳輸路徑以及自定義shell腳本

image.png
echo "run.sh start..."
docker --version
SERVER_NAME=demo-api1
cd /data/app/
echo "docker build start..."
docker build -t $SERVER_NAME /data/app/demo-api1/
echo "docker build end..."
cid=$(docker ps -a| grep "$SERVER_NAME" | awk '{print $1}')
if [ "$cid" != "" ]; then
docker rm -f $cid
fi
docker run \
-d \#后臺運(yùn)行
-e TZ="Asia/Shanghai" \ #設(shè)置時區(qū)
-p 8000:8000 \#宿主機(jī)器端口與容器端口綁定
-v /data/app/demo-api1/:/home/docker_app/demo-api1/ \#文件夾掛載,前面是宿主服務(wù)器路徑,后面是容器的路徑,兩個路徑下內(nèi)容同步
--name demo-api1 \ #容器名稱
--privileged=true \ #是否擁有特權(quán)
--net=host \#[docker的四種網(wǎng)絡(luò)模式](https://www.cnblogs.com/gispathfinder/p/5871043.html)
java:8 java \ #容器版本:tag
-jar /home/docker_app/demo-api1/demo-api1.jar --spring.profiles.active=pro
#容器啟動后啟動jar
echo "run.sh end..."
Dockerfile
主要用于鏡像在當(dāng)前目錄上下文查找文件,并將文件同步到鏡像
FROM java:8
EXPOSE 8000
ADD demo-api1.jar /home/docker_app/demo-api1/demo-api.jar
ENTRYPOINT ["java","-jar", "demo-api1.jar"]
啟動成功后查看
docker ps -a

image.png