Docker環境搭建Jenkins+gitlab+maven自動打包 部署容器


 

宿主機安裝docker(省略)

宿主機安裝maven

下載二進制包解壓到/var/docker_data/jenkins/jenkins_home下面

https://maven.apache.org/download.cgi

Jenkins鏡像安裝

  下載Jenkins鏡像(一般都是Ubuntu版)

FROM jenkins

USER root
#清除了基礎鏡像設置的源,切換成騰訊雲的jessie源
#使用非騰訊雲環境的需要將 tencentyun 改為 aliyun
RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
  && echo "deb http://mirrors.tencentyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
  && echo "deb http://mirrors.tencentyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
  && echo "deb http://mirrors.tencentyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源並安裝缺少的包
RUN apt-get update

ARG dockerGid=999

RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group

  

   制作鏡像

docker build -t jenkins:ubuntu .

  啟動鏡像

docker run --name jenkins --privileged -d -p 8080:8080 -p 5000:5000 -v /etc/localtime:/etc/localtime -v /var/docker_data/jenkins/jenkins_home:/var/jenkins_home -v /var/docker_data/jenkins/settings:/var/settings  -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker --env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/jenkins_home/maven/bin  c2997ba18d6c

  目錄說明:

/var/jenkins_home:Jenkins用戶的家目錄
/var/jenkins_home/workspace:Jenkins主要工作目錄,創建的視圖、gitlab拉下來的代碼都在這個下面

  先按推薦安裝再安裝插件:

  • Maven Integration plugin
  • docker-build-step
  • Docker plugin
  • Gitlab Hook Plugin
  • GitLab Plugin

  Jenkins系統配置:

  系統管理-->系統設置

  配置遠程主機的賬號密碼

配置gitlab

 

 GitLab API token獲取

在gitlab頁面中鼠標點擊右上角頭像點擊settings,訪問令牌創建個人訪問令牌

Jenkins全局工具配置

系統管理-->全局工具配置

 配置jdk路徑

jenkins鏡像中的jdk應該是yum安裝的,所有路徑需要自己去找(/usr/lib/jvm/java-8-openjdk-amd64)

root@68decdef1ec3:~# ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Jul 17  2018 /usr/bin/java -> /etc/alternatives/java
root@68decdef1ec3:~# ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 46 Jul 17  2018 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

  

maven配置(這個是從宿主機映射過來的)

 

配置憑據

創建自動打包job

源碼管理

構建觸發器

構建build(打包)根據pom文件打包(clean package -Dmaven.test.skip=true)

最后運行腳本

參考別人腳本

echo '================打包完成,開始復制================'
cd /var/lib/jenkins/workspace/gpsserver
scp Dockerfile-gps  root@hadoop1:/data/public/gpsserver/
scp server-gps/target/gpserver.jar  root@hadoop1:/data/public/gpsserver/
echo '================復制文件完成================'
ssh root@hadoop1 << remotessh
echo '================進入主機hadoop1 shell================'
cd /data/public/gpsserver
echo '================停止容器 gpsserver================'
sudo  docker stop gpsserver
echo '================刪除容器 gpsserver================'
sudo  docker rm gpsserver
echo '================刪除鏡像 gpsserver:latest================'
sudo  docker rmi gpsserver:latest
echo '================build 鏡像 gpsserver:latest================'
sudo docker build -t gpsserver:latest -f ./Dockerfile-gps .
echo '================運行容器 gpsserver================'
sudo docker run --name=gpsserver -e JAVA_OPTS='  -Dspring.profiles.active=prod ' --restart always -it -d -p 10111:10111 -p 15678:15678  -v /data/public/gpsserver/logs:/logs gpsserver:latest
 
echo "finished!"
exit  ###退出遠程機器
remotessh  ###結尾哦
echo '================結束遠程啟動================'

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM