修改宿主機的docker權限
chmod 777 /var/run/docker.sock
安裝
docker run -p 8380:8080 -p 50000:50000 --network=network_172_18 -u root -v /var/run/docker.sock:/var/run/docker.sock -v /Users/kevinmeng/jenkins_home:/var/jenkins_home --restart=always --privileged=true --name=jenkins jenkinsci/blueocean
第一次登錄時,需要管理員密碼
docker logs jenkins
查看日誌獲得密碼即可。
安裝默認插件
設置管理員密碼
Jenkins全局工具配置
進入到jenkins容器中 echo $JAVA_HOME 獲取java環境安裝地址
JDK環境安裝
Maven環境安裝
安裝Jenkins對應Maven插件
找到 “系統管理“ - “安裝插件” ,點擊 “可選插件”,找到如下maven插件的版本
插件名稱 Maven Integration
因爲我們一般在本地安裝jenkins而不是在生產環境中,所以建議做個host域名映射,例如修改host文件,添加一行:
127.0.0.1 jenkins.fitit100.com
這樣我們就可以通過jenkins.fitit100.com:8380訪問jenkins了。
下面以一個springboot項目爲例子,來演示如何構建docker鏡像,並推送到阿里雲測試服務器,並在阿里雲測試服務器中啓動容器。首先新建一個簡單的springboot java web項目,在項目跟目錄中新建一個dockerfile文件,內容如下:
FROM openjdk:8-jdk-alpine VOLUME /tmp COPY target/szzgj-user.jar szzgj-user.jar EXPOSE 8100 #這裏啓用測試環境的配置文件,當然可以不加--spring.profiles.active=test參數,而是在docker run命令裏面加參數,那樣更靈活一些。 ENTRYPOINT ["java","-jar","szzgj-user.jar","--spring.profiles.active=test","-c"]
在jenkins中新建一個maven項目。如下圖:
設置git代碼庫連接
設置觸發條件
maven build設置
這裏的username和password是阿里雲docker的部署用戶名和密碼,不是登錄用戶名和密碼哦。
docker鏡像構建成功並推送到阿里雲後,運行腳本刪除舊版容器,並啓動新版容器。
代碼如下:
docker login --username=xxxx --password=xxxx registry.cn-shanghai.aliyuncs.com
docker pull registry.cn-shanghai.aliyuncs.com/szzgj/xxx:latest
# 刪除Docker容器
cid=$(docker ps | grep xxx |awk '{print $1}')
if [ x"$cid" != x ]
then
docker rm -f $cid
fi
docker run --name=szzgj-user --restart=always --network=network_172_19 -d -p 8100:8100 registry.cn-shanghai.aliyuncs.com/szzgj/xxx:latest