1. 程式人生 > >CentOS7 環境下 Dokcer 部署 GitLab Maven jenkins

CentOS7 環境下 Dokcer 部署 GitLab Maven jenkins

文章說明:

1.查閱了相關的官方網站,查閱了些資料,請教了些前輩,自己實踐安裝環境,按照如下的步驟 在CentOS7上部署成功。

2.下面的安裝過程中 涉及的IP地址及埠號根據實際的情況自行修改。

3.本文只寫到了環境安裝部署,具體的使用,請到對應的官網上學習使用。

一,關閉防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service

禁用selinux安全
vi /etc/selinux/config 

#SELINUX=enforcing
SELINUX=disabled

二、下載映象:
1.postgresql資料庫下載:
1)搜尋可用的映象
docker search sameersbn/postgresql
2)下載映象
docker pull docker.io/sameersbn/postgresql

2.redis下載:
1)搜尋可用的映象
docker search sameersbn/redis
2)下載映象
docker pull docker.io/sameersbn/redis

3.下載gitlab
1)搜尋可用的映象
docker search gitlab 
2)下載映象 (社群漢化版)
docker pull docker.io/twang2218/gitlab-ce-zh

三、安裝資料庫
1、mkdir   -pv  /home/docker/gitlab/postgresql
2、docker run --name gitlab-postgresql -d \
    --env 'DB_NAME=gitlabhq_production' \
    --env 'DB_USER=gitlab' --env 'DB_PASS=password' \
    --env 'DB_EXTENSION=pg_trgm' \
    --volume /home/docker/gitlab/postgresql:/var/lib/postgresql \
    docker.io/sameersbn/postgresql
引數說明:
--name 給安裝映象取名字,便於在容器中檢視。
--env表示環境變數
--volume表示將後面容器中的路徑掛載到前面的路徑上

四、安裝 Redis
1、mkdir   -pv  /home/docker/gitlab/redis
2、
    docker run -p 63791:6379 --name gitlab-redis -d \
    --volume /home/docker/gitlab/redis:/var/lib/redis \
    sameersbn/redis

引數說明:
-p 63791:6379 :將容器的63791埠對映到主機的6379埠
--volume 表示將後面容器中的路徑掛載到前面的路徑上/home/docker/gitlab/redis:/var/lib/redis  :將主機中當前目錄下的/home/docker/gitlab/redis 掛載到容器的/var/lib/redis
redis-server --appendonly yes :在容器執行redis-server啟動命令,並開啟redis持久化配置

五、安裝gitlab
1. 安裝pwgen-2.07-1.el7.x86_64.rpm
   wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/pwgen-2.07-1.el7.x86_64.rpm
   rpm  -ivh *.rpm 

2. 生成序列
[
[email protected]
~]#  pwgen -Bsv1 64
DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7


把生成的序列複製到如下: 
    --env 'GITLAB_SECRETS_DB_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \

3.映象新增到容器

1)mkdir   -pv  /home/docker/gitlab/gitlab 
2)docker run --name gitlab_ce_ch -d \
    --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
    --publish 10022:22 --publish 5080:80 \
    --env 'GITLAB_PORT=5080' --env 'GITLAB_SSH_PORT=10022' --env 'GITLAB_HOST=IP_ADDRESS' \
    --env 'GITLAB_SECRETS_DB_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
    --volume /home/docker/gitlab/gitlab:/home/git/data \
    twang2218/gitlab-ce-zh 

引數說明:
--link 連線資料庫 redis
--publish  10022:22 :將容器的22埠對映到主機的10022。埠 ; 5080:80 :將容器的80埠對映到主機的5080
--name 給安裝映象取名字,便於在容器中檢視。
--env表示環境變數
--volume表示將後面容器中的路徑掛載到前面的路徑上

六、安裝 jenkins 持續整合
1. mkdir   -pv  /home/docker/jenkins_home && chown -R 1000 /home/docker/jenkins_home
2. docker run --name jenkins -p 9080:8080 \
 -p 50000:50000 -v /home/docker/jenkins_home:/var/jenkins_home \
 -v /etc/localtime:/etc/localtime \
 jenkins/jenkins 

引數說明:
-p 埠號的對映 根據實際的情況自己修改。
--name 給安裝映象取名字,便於在容器中檢視。
--env表示環境變數
--volume表示將後面容器中的路徑掛載到前面的路徑上

生成金鑰如下:


*************************************************************
*************************************************************
*************************************************************


Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:


017ae0c2045e49669ddffe686a902352      

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************

3、退出:Ctr + C

4、登入:127.0.0.1:6080/

5、輸入金鑰: 017ae0c2045e49669ddffe686a902352

七、部署maven是私有庫
方法一:
1、mkdir -pv /home/docker/nexus-data && chown -R 200 /home/docker/nexus-data
2、docker pull sonatype/nexus
3、docker run -d --name nexus-data sonatype/nexus echo "data-only container for Nexus"
4、docker run -d -p 80811:8081 --name nexus --volumes-from nexus-data sonatype/nexus

方法二:
1、mkdir -pv /home/docker/nexus-data && chown -R 200 /home/docker/nexus-data

2、sudo docker run -d \
--name nexus \
-p  80811:8081 \
-v /home/docker/nexus-data:/var/lib/nexus-data \
sonatype/nexus

引數說明:
-p  80811:8081 :將容器的8081埠對映到主機的80811。
--name 給安裝映象取名字,便於在容器中檢視。
-v表示將後面容器中的路徑掛載到前面的路徑上

5.127.0.0.1:20081/nexus

6.初始使用者/密碼: admin/admin123