Ubuntu 24.04 LTS 安装 gitlab

ubuntu 22.04 安装 gitlab

1. 前置条件

  。已安装 Docker(建议 20.10 + 版本)和 Docker Compose(可选,用于简化配置)。
  。服务器至少 4GB 内存(生产环境建议 8GB+,否则可能因内存不足启动失败)。
  。开放必要端口:80(HTTP)、443(HTTPS)、22(SSH,若需通过 SSH 访问仓库)。

2. 安装 Docker(若未安装):

 sudo apt update && sudo apt install -y docker.io docker-compose-plugin
 sudo systemctl enable --now docker
 sudo usermod -aG docker $USER  # 非root用户添加docker权限(需重启生效)
 ##换源
 sudo mkdir -p /etc/docker
 vim /etc/docker/daemon.json

 {
  "registry-mirrors" : ["https://docker.registry.cyou",
  "https://docker-cf.registry.cyou",
  "https://dockercf.jsdelivr.fyi",
  "https://docker.jsdelivr.fyi",
  "https://dockertest.jsdelivr.fyi",
  "https://mirror.aliyuncs.com",
  "https://dockerproxy.com",
  "https://mirror.baidubce.com",
  "https://docker.m.daocloud.io",
  "https://docker.nju.edu.cn",
  "https://docker.mirrors.sjtug.sjtu.edu.cn",
  "https://docker.mirrors.ustc.edu.cn",
  "https://mirror.iscas.ac.cn",
  "https://docker.rainbond.cc",
  "https://do.nark.eu.org",
  "https://dc.j8.work",
  "https://dockerproxy.com",
  "https://gst6rzl9.mirror.aliyuncs.com",
  "https://registry.docker-cn.com",
  "http://hub-mirror.c.163.com",
  "http://mirrors.ustc.edu.cn/",
  "https://mirrors.tuna.tsinghua.edu.cn/",
  "http://mirrors.sohu.com/" 
 ],
   "insecure-registries" : [
      "registry.docker-cn.com",
      "docker.mirrors.ustc.edu.cn"
   ],
  "debug": true,
  "experimental": false
}

步骤 1:准备数据持久化目录

 # 创建宿主机目录(可自定义路径,建议放在大磁盘下)
 sudo mkdir -p /data/gitlab/{config,data,logs}

 # 设置权限(避免容器内进程无权限读写,GitLab容器内默认用户ID为998)
 sudo chmod -R 777 /data/gitlab  # 简单粗暴(测试环境可用)
 # 生产环境建议更精细:sudo chown -R 998:998 /data/gitlab

步骤 2:启动 GitLab 容器

方式 1:直接用docker run命令

一行命令启动,适合快速测试:

docker run --detach \
  --hostname gitlab.example.com  # 替换为你的域名或服务器IP(如192.168.1.100)\
  --publish 80:80 \               # 宿主机80端口映射到容器80(HTTP)
  --publish 443:443 \             # 宿主机443端口映射到容器443(HTTPS,若需)
  --publish 2222:22 \             # 宿主机2222端口映射到容器22(SSH,避免与宿主机22冲突)
  --name gitlab \                 # 容器名称
  --restart always \              # 开机自启
  --volume /data/gitlab/config:/etc/gitlab \  # 配置文件挂载
  --volume /data/gitlab/data:/var/opt/gitlab \ # 数据挂载
  --volume /data/gitlab/logs:/var/log/gitlab \ # 日志挂载
  gitlab/gitlab-ce:latest         # 官方社区版镜像(latest为最新版,可指定版本如16.0.0-ce.0)

方式 2:用 Docker Compose(推荐,便于管理)

1.创建docker-compose.yml文件:

version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: gitlab.example.com  # 替换为你的域名/IP
    environment:
      # 核心配置:外部访问URL(必须设置,否则页面跳转异常)
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'  # 替换为你的URL(http/https)
        # 若需SSH访问,指定SSH端口(与宿主机映射的端口一致)
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - "80:80"       # HTTP
      - "443:443"     # HTTPS
      - "2222:22"     # SSH
    volumes:
      - /data/gitlab/config:/etc/gitlab
      - /data/gitlab/data:/var/opt/gitlab
      - /data/gitlab/logs:/var/log/gitlab
    # 可选:限制资源(避免GitLab占用过多内存)
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 8G

2.启动容器:

docker compose up -d  # 后台启动

步骤 3:首次访问与配置

1.等待启动完成:

GitLab 启动较慢(首次需初始化数据库等),可通过日志查看进度:

docker logs -f gitlab  # 实时查看日志,出现"gitlab Reconfigured!"即启动完成

2.访问 GitLab:

浏览器打开你设置的external_url(如http://192.168.1.100),首次访问会提示设置root用户的密码(需牢记)。

3.登录:

输入root用户名和刚才设置的密码,即可进入 GitLab 控制台。

关键配置说明

1.修改外部 URL:

若需修改访问地址,编辑/data/gitlab/config/gitlab.rb(宿主机目录):

sudo vim /data/gitlab/config/gitlab.rb

找到并修改:

external_url 'http://新的域名或IP'
gitlab_rails['gitlab_shell_ssh_port'] = 2222  # 若SSH端口变更

然后进入容器执行重新配置:

docker exec -it gitlab gitlab-ctl reconfigure

2.配置 HTTPS:

需提前准备 SSL 证书(如server.crt和server.key),将证书放到宿主机/data/gitlab/config/ssl/目录,然后修改gitlab.rb:

external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"

重新配置生效。

3.邮件通知:

编辑gitlab.rb配置 SMTP(以 QQ 邮箱为例):

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的QQ邮箱@qq.com"
gitlab_rails['smtp_password'] = "邮箱授权码"  # 非登录密码,需在邮箱设置中获取
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "你的QQ邮箱@qq.com"

注意事项

1.端口冲突:若宿主机 80/443/22 端口已被占用,需修改映射端口(如-p 8080:80将宿主机 8080 映射到容器 80),同时更新external_url(如http://ip:8080)。
2.内存不足:若启动失败或频繁崩溃,检查内存是否≥4GB,可通过free -h查看,不足时建议增加内存或启用 Swap。
3.数据备份:直接备份宿主机/data/gitlab目录即可(tar -zcvf gitlab_backup.tar.gz /data/gitlab)。
4.版本更新:停止容器→删除容器→拉取新镜像→重新启动(数据目录不变则数据保留)。

posted @ 2025-11-01 20:42  浮生醉清风_QQ  阅读(44)  评论(0)    收藏  举报