侧边栏壁纸
博主头像
欧德的半位面博主等级

欢迎迷途的旅人

  • 累计撰写 6 篇文章
  • 累计创建 4 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

【Gitlab-CICD-一】Docker-Compose方式安装Gitlab

欧德之怒
2024-09-10 / 0 评论 / 0 点赞 / 8 阅读 / 5686 字

说明

  • gitlab安装的方式很多,容器方式相对比较容易管理且不污染宿主机环境
  • 使用Docker-Compose方法,固化启动操作到yaml文件、挂载容器数据到本地, 容器上下线不会存在数据丢失

步骤

前置

资源要求

  • 存在一台已安装Docker的服务器,建议2核CPU、6GB内存以上
    • gitlab是内存型应用,运行非常消耗内存
    • 6G是实际观察发现的可勉强运行的内存底线,官方建议的4G内存不靠谱
  • 登录dockerhub,查看gitlab/gitlab-ce最新的tag,获取最新gitlab的版本号,如16.7.3-ce.0
    • 不建议版本号使用latest,不利于后续升级确定版本
    • ce为社区版本
    • ee为商业版本

目录准备

  • 创建compose目录及文件存储目录
# 存放gitlab的compose目录
mkdir -p /data/gitlab
# 创建compose文件
touch /data/gitlab/docker-compose.yml
# gitlab的数据存放目录
mkdir -p /data/gitlab/config
mkdir -p /data/gitlab/data
mkdir -p /data/gitlab/logs

安装

  • 创建docker自定义bridge网络,
docker network create --driver bridge --subnet 172.18.0.0/16 --gateway 172.18.0.1 network-test
  • 修改docker-compose.yml文件,如下
services:
  gitlab:
     # 使用的gitlab镜像
    image: gitlab/gitlab-ce:16.7.3-ce.0
     # 自定义的容器名称
    container_name: gitlab
     # 启动策略
    restart: unless-stopped
     # 特权模式,允许一些root权限的操作
    privileged: true
     # hostname设置
    hostname: 'gitlab'
    # 环境设置,gitlab自定义配置大多使用环境变量控制
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://test.gitlab.com:8181'
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        gitlab_rails['smtp_enable'] = 'true'
        gitlab_rails['smtp_address'] = 'smtp.qq.com'
        gitlab_rails['smtp_port'] = '465'
        gitlab_rails['smtp_user_name'] = 'xxx@qq.com'
        gitlab_rails['smtp_password'] = 'xxx'
        gitlab_rails['smtp_domain'] = 'qq.com'
        gitlab_rails['smtp_authentication'] = 'login'
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = false
        gitlab_rails['gitlab_email_from'] = 'xx@qq.com'
        gitlab_rails['gitlab_ssh_host'] = 'test.gitlab.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 22
    volumes:
     # 这三个目录必须挂载,这三个是gitlab的动态数据
     # 挂载后支持dockcer compose进行down再up后数据不丢失
      - './config:/etc/gitlab'
      - './data:/var/opt/gitlab'
      - './logs:/var/log/gitlab'
    ports:
      # 映射ssh clone方式的端口到宿主机
      - '22:22'
      # 映射http clone方式的端口到宿主机
      - '80:80'
     # 共享内存大小,建议至少256m起步
    shm_size: '256m'
    networks:
      network-test:
         # 设置一个静态ip地址
        ipv4_address: "172.18.0.8"
networks:
  network-test:
    external: true
  • GITLAB_OMNIBUS_CONFIG参数解释

    • external_url
      • gitlab的访问地址
      • gitlab的http/https克隆地址,根据填的时http、https自动判断
      • 支持ip、域名
      • 指定端口,默认为80,如果ip或者域名后带自定义端口, 则web访问和http/https拉取的端口自动调整为此自定义端口
    • gitlab_rails[‘time_zone’]
      • 时区,国内使用Asia/Shanghai
    • smtp相关:配置gitlab服务器发邮件使用的配置,此处时一个使用QQ邮箱的例子,需要注意点如下:
      • gitlab_rails[‘smtp_user_name’]:发送gitlab邮件的真实邮箱,建议独立申请一个,不要使用自己生活邮箱
      • gitlab_rails[‘smtp_password’]:不是邮箱的登录密码,而是smtp服务的授权码
      • gitlab_rails[‘gitlab_email_from’]:设置GitLab发送的邮件的发件人地址。指定邮件中显示的发件人地址,比如"noreply@example.com"。这个地址通常是一个专门用于GitLab发送邮件的虚拟地址,而不是真实的用户邮箱地址
    • gitlab_rails[‘gitlab_ssh_host’]:ssh拉取方式的地址,支持域名和ip,建议和external_url的域名/IP部分一致
    • gitlab_rails[‘gitlab_shell_ssh_port’]:ssh拉取方式的端口,默认22,请根据实际修改
  • 启动gitlab容器

cd /data/gitlab
docker compose up -d
  • (可选)启动后修改配置
    • 方法一:docker compose down后,修改docker-compose.yml文件后再启动
    • 方法二:进入docker容器后手动修改
# 宿主机上执行命令进入容器
docker exec -ti gitlab bash
# 文件路径
vi /etc/gitlab/gitlab.rb
# 例子,如修改ssh端口为2222
# 对应的docker-compose.yml中的端口也需要修改,否则宿主机无法映射
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# 配置生效
gitlab-ctl reconfigure
# 重启生效
gitlab-ctl restart
  • 首次启动时间很久,需要长时间等待,至少十几分钟
  • 第一次登陆gitlab需要修改默认root密码
  • 获取初始密码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

升级

docker gitlab的升级一般类似其他方式升级,都需要按照官方的版本升级图,官方升级参考

  • 执行升级前备份
docker exec -ti gitlab gitlab-rake gitlab:backup:create
  • 下线当前Docker容器
cd /data/gitlab
docker compose down
  • 修改镜像版本号后再上线
    • 如修改docker-compose.yml中images的tag从v16.3.6到16.7.3
  • 上线修改后的容器
docker compose up -d
  • 等待10分钟左右
    • 容器上线后gitlab自动运行升级,挺慢的,预计需要十几分钟

参考文档

Gitlab官方Docker安装指导
Gitlab官方升级指导
Docker部署的gitlab升级指南
Docker部署gitlab(避坑版)
Nas码农篇:群晖Docker安装Gitlab

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区