文章目錄
- 使用Docker在阿里云ECS上部署Gitlab
- 1.購買一個數據,掛載到`/data`用于存儲gitlab相關數據
- 2. 部署docker引擎
- 3. 調整ssh的默認端口,將22端口留給gitlab
- 4. 部署gitlab
- 5. 進入docker容器獲取gitlab的默認密碼
- 6. 登錄gitlab,完成gitlab-ruuner的設置
- 7. 啟動gitlab-ruuner
- 8. 回到gitlab web界面,查看runner的狀態
- 9. 使用docker login 測試docker鏡像服務器
使用Docker在阿里云ECS上部署Gitlab
這里利用docker容器化方式部署gitlab,利用docker-gitlab-ruuner 來運行gitlab-cicd腳本。
很多同學可能不知道:gitlab本身還提供了docker鏡像倉庫服務,本文將一起介紹。
我們這里使用 https://gitlab.goner.fun/ 作為git網頁的地址;使用 https://r.gitlab.goner.fun 作為docker鏡像的服務地址。
1.購買一個數據,掛載到/data
用于存儲gitlab相關數據
需要做如下操作:
# 查看有哪些硬盤
fdisk -l# 格式化數據盤
mkfs.ext4 /dev/vdb# 將掛載信息寫入 /etc/fstab
echo "/dev/vdb /data ext4 defaults 1 1" >> /etc/fstab# 創建 /data 目錄作為掛載點
mkdir /data# 嘗試自動掛載
mount -a# 檢查數據盤掛載情況,查看是否掛載成功
df -h
手動廣告
我開發了一個golang的依賴注入框架名字叫Gone, Gone 是可以高效開發Web服務的Golang依賴注入框架
github地址:https://github.com/gone-io/gone
文檔地址:https://goner.fun/zh/
幫忙在gitlab上點個星星吧?
2. 部署docker引擎
如下操作:
# 1.軟件更新
yum update# 2.安裝docker的倉庫的repo
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 3.安裝docker引擎和 docker compose 等內容
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 4.調整docker引擎的數據目錄,使其數據存儲到/data/docker
ln -s /data/docker /var/lib/docker# 5.啟動 docker引擎
systemctl start docker.service# 6.測試
docker run busybox /bin/sh -c "echo success"
3. 調整ssh的默認端口,將22端口留給gitlab
# 1.修改sshd配置文件,增加配置`Port 27132`
vim /etc/ssh/sshd_config# 2.重啟sshd
systemctl restart sshd
記得要到安全組去放開新的ssh端口,否則登錄不到服務器。
4. 部署gitlab
# 1.創建目錄并進入
mkdir -p /data/gitlab && cd /data/gitlab# 2.編寫docker-compose文件
echo """
version: "3.3"
services:gitlab:container_name: 'gitlab.goner.fun' # 域名需要替換成你自己的image: gitlab/gitlab-ce:16.2.8-ce.0restart: unless-stoppedports:- "22:22"- "80:80"- "443:443"volumes:- ./gitlab-config:/etc/gitlab- ./data/gitlab-log:/var/log/gitlab- ./data/gitlab:/var/opt/gitlabrunner:image: registry.cn-hangzhou.aliyuncs.com/openviewtech/gitlab-runner:alpine3.13-v14.7.1restart: alwaysvolumes:- ./runner-config.toml:/etc/gitlab-runner/config.toml- /var/run/docker.sock:/var/run/docker.sock
"""> docker-comopse.yaml# 3.創建gitlab配置目錄
mkdir gitlab-config# 4.創建gitlab配置文件
echo """
## 配置gitlab對外的地址
external_url 'https://gitlab.goner.fun/' #域名需要替換成你自己的## 配置gitlab docker 鏡像服務器的對外地址
registry_external_url 'https://r.gitlab.goner.fun' #域名需要替換成你自己的## 開啟 docker 鏡像服務
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "gitlab.wfsanwen.com"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"## 開啟nginx代理
nginx['enable'] = true
nginx['client_max_body_size'] = '2048m'
nginx['redirect_http_to_https'] = true ## 使用 letsencrypt 為服務器自動頒布https證書
letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
""" > gitlab-config/gitlab.rb# 5.使用docker compose啟動gitlab,會等待比較久的時間
docker compose up -d gitlab# 6. 跟蹤啟動日志
docker compose logs -f gitlab
5. 進入docker容器獲取gitlab的默認密碼
cd /data/gitlab# 進入容器
docker compose exec -it gitlab /bin/bash# 獲取默認密碼,默認用戶是 root
grep 'Password:' /etc/gitlab/initial_root_password
6. 登錄gitlab,完成gitlab-ruuner的設置
- 修改密碼,這是必須完成的
- 進入管理頁面:https://gitlab.goner.fun/admin
- 從runner頁面獲取runner token
設置tags為docker,在
.gitlab-ci.yaml
中的tags標簽有docker標記的的job都會被調度導該runner
7. 啟動gitlab-ruuner
# 1. 進入gitlab安裝目錄
cd /data/gitlab# 2. 編輯docker runner 配置文件
echo """
concurrent = 1
check_interval = 0[session_server]session_timeout = 1800[[runners]]name = "gitlab-ci-docker"url = "https://gitlab.goner.fun/" # 域名需要替換成你自己的token = "glrt-xxxxxxxxxxxxxx" # 從上一步獲取的 runner tokenexecutor = "docker"[runners.custom_build_dir][runners.cache][runners.cache.s3][runners.cache.gcs][runners.cache.azure][runners.docker]tls_verify = falseimage = "registry.cn-hangzhou.aliyuncs.com/openviewtech/docker:19.03.12"helper_image = "registry.cn-hangzhou.aliyuncs.com/openviewtech/gitlab-runner-helper:x86_64-198d2720"privileged = falsedisable_entrypoint_overwrite = falseoom_kill_disable = falsedisable_cache = falsevolumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]shm_size = 0
""" > runner-config.toml# 3. 啟動 gitlab-ruuner
docker compose up -d runner# 4. 查看gitlab-ruuner日志
docker compose logs -f ruuner
8. 回到gitlab web界面,查看runner的狀態
進入頁面:https://gitlab.wfsanwen.com/admin/runners
- Online,表示runner已經成功上線
- Offline,表示還有問題,需要再檢查
9. 使用docker login 測試docker鏡像服務器
docker login r.gitlab.goner.fun # 域名替換為你自己的
#輸入你在gitlab上的賬號密碼
手動廣告
我開發了一個golang的依賴注入框架名字叫Gone, Gone 是可以高效開發Web服務的Golang依賴注入框架
github地址:https://github.com/gone-io/gone
文檔地址:https://goner.fun/zh/
幫忙在gitlab上點個星星吧?