Docker訓練-GitLab持續集成環境搭建

GitLab持續集成環境搭建

隨着微服務的興起,部署服務越來越繁瑣,當然業內也有對應的持續集成方案,目前在企業中使用較爲廣泛的持續集成方案應是gitlab持續集成、持續部署(gitlab CI/CD)

安裝GitLab與GitLab-Runner

爲了簡化安裝,本文使用docker進行操作

GitLab安裝:

首先拉去鏡像:

$ docker pull gitlab/gitlab-ce

拉取成功後使用如下命令啓動容器:

docker run -itd -p 8443:443 -p 8081:8081 -p 2222:22 \
--name gitlab --restart always \
--volume ~/develop/docker/gitlab/config:/etc/gitlab \
--volume ~/develop/docker/gitlab/logs:/var/log/gitlab \
--volume ~/develop/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

需要注意的是:

  • 端口8443 ,8081,2222可任意選擇一個物理機上可用的端口。
  • 映射內部8081端口的原因是,如果直接啓動,在拉取代碼的時候,網頁會返回對應的容器id作爲拉取的url,例如:http://1fj3280sd/jlh/test,對於這種情況,只需在--volume ~/develop/docker/gitlab/config中找到gitlab.rb文件,修改其中的配置項即可,external_url "http://ip:8081"。但是如果直接設置該屬性,會使得容器內gitlab端口改爲8081,會導致端口映射失敗,顧此處要暴露8081端口。
  • —volume是將容器中的地址映射到物理機上。
  • 第一次啓動容器,由於要進行初始化,所以啓動時間較慢。

GitLabRunner安裝:

拉取鏡像:

$ docker pull gitlab/gitlab-runner

啓動gitlab-runner容器:

docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

註冊Runner

容器之間互聯

在註冊Runner的時候需要輸入gitlab的訪問地址,而docker容器之間不能直接連接,所以需要進如下操作使得容器互聯。

容器之間的互聯有三種方式:

  • 通過容器ip直接連接

使用命令apt-get install iputils-pingapt-get install net-tools安裝pingifconfig,安裝完成之後查看容器ip

  • 運行容器的時候加上--link 容器名稱:容器別名,此時可通過容器的別名進行連接
  • 創建bridge網絡

使用docker network create testnet創建網絡,然後在運行容器的時候使用該網絡,使用方法:

docker run -it --name <容器名> —network --network-alias <網絡別名> <鏡像名>

此處我選用的直接用ip連接。

查看容器的兩種方法:

  • 使用docker exex -it 容器id /bin/bash進去容器,安裝ifconfig,並使用該命令查看容器ip
  • 安裝docker控制檯工具,在控制工具中可直接查看容器的ip等信息,我使用的是portainer,鏡像網易雲鏈接:https://c.163yun.com/hub#/m/repository/?repoId=78662

註冊

首先進入容器,使用gitlab-runner register命令註冊:

root@f3c47cad0bf8:/# gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=82 revision=6946bae7 version=12.0.0
Running in system-mode.                            
                                                   
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://172.17.0.3:8081 #gitlab訪問地址
Please enter the gitlab-ci token for this runner:
cFa_ASWeispNJRBxs7Uz #gitlab倉庫註冊令牌
Please enter the gitlab-ci description for this runner:
[f3c47cad0bf8]: test 
Please enter the gitlab-ci tags for this runner (comma separated):
test
Registering runner... succeeded                     runner=cFa_ASWe
Please enter the executor: docker-ssh+machine, kubernetes, docker, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh:
docker
Please enter the default Docker image (e.g. ruby:2.6):
alpine:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 
root@f3c47cad0bf8:/# gitlab-runner start #啓動容器
Runtime platform                                    arch=amd64 os=linux pid=90 revision=6946bae7 version=12.0.0
root@f3c47cad0bf8:/# 

gitlab倉庫註冊令牌獲取方式如圖:
令牌獲取方式

在完成註冊後,在gitlab裏可以查看到如下內容:
runner註冊成功預覽

註冊羣組runner

註冊羣主runner與單個方式相同,首先在gitlab上新建一個羣組,然後在該羣組的[設置->CI/CD->Runner]中查看Runner註冊令牌,然後在註冊runner的時候使用該令牌即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章