首先搭建jenkins+maven+nexus這一套自動化打包工具,並配置好相應配置,這里就不再贅述了。
其次,搭建好docker集群和私有倉庫,以及安裝好docker-compose工具,配置好相應的yaml配置文件
以下是增加新工程流程
1,在jenkins中新建maven或者其他工程。
2,需要jenkins中配置,相關信息,如svn路徑,maven打包的參數,以及打包成功后需要執行的命令
以上是打包成功后需要執行的命令,需要注意的有以上4個地址,1,2,是把當前工程名和鏡像名稱這些變量放到dockerrc文件中,在以后的自動部署中要使用
3是dockerbuild構建鏡像的文件夾,4,構建鏡像的名稱。往下就是構建鏡像,推送到私有倉庫,最后執行自動化腳本運行容器,最后注意工程的workspace里面的ROOT.WAR的路徑,不是完全都一樣的,根據每個工程名字和路徑修改。
3,自動化腳本,就是以上的命令最后的deloyjava.sh
載入dockerrc變量,先執行遠程node集群預下載鏡像,提高容器啟動速度,定義docker-compose.yaml文件位置,更新版本號,最后啟動容器。
4,需要建立的幾個文件夾
首先根據jenkins中執行的命令去建立文件夾,以上的命令中,jenkins的workspace自然不用建立了,因為它會自動創建,但是
APP_DIR=/data/ifengsite/app_path/$JOB_BASE_NAME 這個需要建立,根據工程名字建立,這個文件夾是dockerbuild創建鏡像的文件夾。
文件夾里東西,必有的肯定是Dockerfile文件,以及一些腳本,和需要放入的文件等等
5,需要修改的文件
需要修改hosts文件,因為在上面的自動部署腳本中會調用hosts文件去預先 下載鏡像,所以定義工程名主機組去預先下載鏡像
這是示例
需要修改docker-compose.yaml,增加新工程的容器啟動參數和命令,已經映射端口,內存等等。
這是示例
最后容器啟動成功。
以上只是簡單的流程,具體 出問題了,還需要仔細排查,根據jenkins輸出提示和docker輸出提示。