1. 先在jenkins上配置拉取代碼部分,需要在git上找到項目位置,直接復制url即可
http://192.168.0.161:3000/IT-Insurance/Back.Test-Walle
選擇git的憑據 #不報錯即可
2. 可以先跑一下jenkins,看看代碼是否拉取正常,執行命令,編譯打包
cd /root/.jenkins/workspace/test/thanos
mvn package -PmakeAll -Dmaven.test.skip=true

3. 構建執行shell命令和編譯打包放一起
cd /root/.jenkins/workspace/test/thanos/target
scp thanos-0.0.1-SNAPSHOT.jar deploy@192.168.0.249:/opt/server/test/
4. 在部署服務器上編寫Dockerfile #docker search -s 10 centos查找鏡像 docker pull docker.io/mamohr/centos-java拉取鏡像
#Base umages 基礎鏡像
FROM docker.io/mamohr/centos-java
##MAINTAINER 維護者信息
MAINTAINER liutao
#ADD
ADD thanos-0.0.1-SNAPSHOT.jar /opt
#EXPOSE
EXPOSE 8080
#CMD
ENTRYPOINT ["java","-jar","/opt/thanos-0.0.1-SNAPSHOT.jar"]
5. 在服務器上安裝docker
yum install -y docker
systemctl start docker && systemctl enable docker #啟動docker及開機自啟動
6. 在jenkins構建新建一個執行shell
ssh deploy@192.168.0.249 "docker rm -f test_server;docker rmi -f test:v1.0cd /opt/server/test/;docker build -t test:v1.0 . ;docker run -d -p 8080:8080 --restart=always --name test_server test:v1.0"
也可以寫成一個腳本
#!/bin/sh
docker rm -f test_server
docker rmi -f test:v1.0
cd /opt/server/test/ && docker build -t test:v1.0 . && docker run -d -p 8080:8080 --restart=always --name test_server test:v1.0
#docker run -d -v /data/logs/thanos:/data/logs/thanos -p 19999:9999 --restart=always --name test1_server test1:v1.0 #與容器共享目錄,前者為宿主機目錄,后者為容器目錄
ssh deploy@192.168.0.249 "sh -x /opt/server/test/test.sh"
ssh后面雙引號必須要有,多個命令用;分割


7. 上傳到私有倉庫,使用harbor倉庫
docker rm -f test2_server
docker rmi -f test2:v2.0
cd /opt/server/test_1/ && docker build -t test2:v2.0 . && docker run -d -v /data/logs/thanos:/data/logs/thanos -p 19999:9999 --name test2_server test2:v2.0
docker tag test2:v2.0 192.168.0.52/test/test2:v2.0
#source /opt/server/test_1/a.sh
docker login --username=admin --password=Harbor12345 192.168.0.52 #登錄私有倉庫
docker push 192.168.0.52/test/test2:v2.0
8. 拉取私有鏡像
docker login 192.168.0.52
docker pull 192.168.0.52/test/test2:v2.0
如提示登錄錯誤,修改一下文件
vim /etc/docker/daemon.json
{"registry-mirrors": ["192.168.0.105"]}
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current --insecure-registry 192.168.0.52
systemctl daemon-reload && systemctl restart docker


