下載二進制包解壓到/var/docker_data/jenkins/jenkins_home下面java
https://maven.apache.org/download.cgigit
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拉下來的代碼都在這個下面
先按推薦安裝再安裝插件:spring
系統管理-->系統設置docker
配置遠程主機的帳號密碼shell
配置gitlabapache
GitLab API token獲取ubuntu
在gitlab頁面中鼠標點擊右上角頭像點擊settings,訪問令牌建立我的訪問令牌bash
系統管理-->全局工具配置ssh
配置jdk路徑jvm
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 '================結束遠程啓動================'