Linux系統 Docker Jenkins+Docker+Gitlab+Maven搭建持續集成環境

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 global setup 設置全局git
git config --global user.name "Administrator"
git config --global user.email "13486157333m@sina.cn"
Create a new repository
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
Existing folder
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
Existing Git repository
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

相關文章
相關標籤/搜索