Jenkins+Docker+Gitlab+Maven搭建持續集成環境java
Gitlab docker下載安裝配置linux
1、安裝配置docker服務nginx
# yum -y install git docker 安裝git docker 服務git
# systemctl start docker 啓動docker服務docker
# systemctl enable docker docker服務開機自動開啓vim
# docker search gitlab 搜索gitlab容器鏡像windows
# docker pull docker.io/gitlab/gitlab-ce 下載gitlab 容器鏡像app
# docker tag docker.io/gitlab/gitlab-ce gitlab/gitlab-ce:v1 更改容器名稱ssh
# docker images 查看下載的容器鏡像maven
# hostnamectl set-hostname gitlab.mengqi.com 設置主機名稱
在linux下:
#vim /etc/hosts
192.168.2.41 gitlab
在windows下:
#cd C:\Windows\System32\drivers\etc\hosts
192.168.2.41 gitlab
# mkdir -p /opt/gitlab/config /opt/gitlab/logs /opt/gitlab/data
# docker run -d --hostname ${HostName} -p 10443:443 -p 18080:80 -p 10022:22 --name gitlab --restart always --volume /opt/gitlab/config:/etc/gitlab --volume /opt/gitlab/logs:/var/log/gitlab --volume /opt/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:v1 啓動gitlab docker容器
指定了三個端口,22表示ssh端口,80表示http端口,443表示https端口,分別映射到宿主機上的1002二、18080和10443端口,咱們還經過--volume指定目錄映射,其中
/etc/gitlab表示gitlab的配置目錄,映射到宿主機的/opt/gitlab/config目錄.
/var/log/gitlab表示gitlab的日誌目錄,映射到宿主機的/opt/gitlab/logs目錄.
/var/opt/gitlab表示gitlab的數據目錄,映射到宿主機的/opt/gitlab/data目錄.
頁面訪問的網址是http://gitlab.mengqi.com:18080 帳戶root密碼admin1234
接下來新建一個空的項目hello,其中hello爲項目名稱,可設置可見性級別:
Private表示私有項目,授予具體權限的用戶才能訪問.
Internal表示內部項目,可登錄的用戶都能克隆項目.
Public表示公開項目,沒有任何權限的用戶都能克隆項目.
接着咱們須要作的就是將本地java代碼推送至gitlab中.
git config --global user.name "Administrator"
git config --global user.email "13486157333m@sina.cn"
git clone http://gitlab.mengqi.com/root/hello.git
cd hello
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
cd existing_folder
git init
git remote add origin http://gitlab.mengqi.com/root/hello.git
git add .
git commit -m "Initial commit"
git push -u origin master
cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.mengqi.com/root/hello.git
git push -u origin --all
git push -u origin --tags
#docker search Jenkins 查詢jenkins docker容器
# docker pull docker.io/jenkinsci/jenkins 下載jenkins
# docker tag docker.io/jenkinsci/jenkins jenkins/jenkins:v1修改鏡像名稱
Gitlab與Jenkins部署在同一臺機器上
# mkdir /opt/Jenkins jenkins配置文件目錄
# docker run -d -p 28080:8080 -p 50000:50000 --name jenkins --link gitlab:${HostName} -u root -v /opt/jenkins:/var/jenkins_home jenkins/jenkins:v1
Jenkins部署單獨部署
# docker run -d -p 28080:8080 -p 50000:50000 --name jenkins --hostname jenkins --restart always -u root -v /opt/jenkins:/var/jenkins_home jenkins/jenkins:v1
Jenkins地址http://192.168.2.41:28080/
# docker exec ${docker_ID} cat /var/jenkins_home/secrets/initialAdminPassword 或者 # cat /opt/jenkins/secrets/initialAdminPassword
帳號admin1 密碼admin1234
初始界面
Maven項目,系統管理-插件管理-可安裝搜索Maven Integration 、Git Parameter 、 Gitlab Hook
經過配置令牌遠程觸發項目構建;要啓用Token(令牌)遠程觸發項目構建首先要保證Jenkins服務安裝了「Build Authorization Token Root 「」插件,而且配置了Jenkins的身份驗證。
安裝maven插件
建立maven項目
1.進入到項目構建
2.添加jenkins祕鑰鏈接
上面填寫的是gitlab的用戶名密碼驗證,添加完後須要選中它
3.配置pom.xml文件 clean package -q -Dmaven.test.skip=true
構建目錄 jar包 /opt/jenkins/workspace/${項目名稱}/target
根據製做的dockerfile製做鏡像例
# touch dockerfile
編輯dockerfile
# vim dockerfile
FROM docker/java:v1
MAINTAINER hetao
ADD ./eureka-1.0.1.jar /app/eureka-1.0.1.jar
ENTRYPOINT ["java","-jar","/app/eureka-1.0.1.jar"]
EXPOSE 19000
# docker build -t ${DockerName} .
gitlab備份遷移
由於是容器遷移因此須要遷移容器鏡像
# docker save gitlab/gitlab-ce:latest > ./gitlab_ce_10.3.0.tar.gz
導入
# docker load -i gitlab_ce_10.3.0.tar.gz
備份gitlab.rb配置文件
/etc/gitlab/gitlab.rb 配置文件須備份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 郵件配置備份
/var/opt/gitlab/backups 備份文件位置
查看源gitalb容器掛載目錄
# docker inspect 容器ID | grep Mounts -A 20
備份時須要保持gitlab處於正常運行狀態,直接執行
# gitlab-rake gitlab:backup:create
遠程拷貝至遷移目的機器
# scp -r /srv/gitlab/data/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar root@192.168.88.47:/opt/data/gitlab/backups
gitlab恢復、中止相關數據鏈接服務
# gitlab-ctl stop unicorn# gitlab-ctl stop sidekiq# chmod 777 /opt/data/gitlab/backups# gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4 # gitlab-ctl start