文章目录
- 使用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上点个星星吧?