温馨提示×

ubuntu gitlab容器化部署步骤

小樊
73
2025-10-02 01:44:17
栏目: 智能运维

Ubuntu系统GitLab容器化部署步骤(基于Docker Compose)

1. 准备工作

  • 更新系统包:运行sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本。
  • 安装依赖包:执行sudo apt install -y curl openssh-server ca-certificates tzdata perl,安装Docker和Docker Compose所需的依赖。

2. 安装Docker Engine

  • 添加Docker官方GPG密钥:运行curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -,导入Docker的官方密钥以验证软件包完整性。
  • 添加Docker软件源:执行sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable",将Docker的稳定版软件源添加到系统。
  • 安装Docker CE:运行sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io,安装Docker社区版(CE)。
  • 设置Docker开机自启:执行sudo systemctl enable --now docker,启动Docker服务并设置为开机自动启动。

3. 安装Docker Compose

  • 下载Docker Compose二进制文件:运行sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose,下载指定版本的Docker Compose(以1.29.2为例)。
  • 赋予执行权限:执行sudo chmod +x /usr/local/bin/docker-compose,使Docker Compose具备可执行权限。
  • 验证安装:运行docker-compose --version,确认输出类似docker-compose version 1.29.2,表示安装成功。

4. 创建Docker Compose文件

  • 创建项目目录:运行mkdir -p /srv/gitlab/{config,logs,data},创建用于存放GitLab配置、日志和数据的目录(可根据需求修改路径)。
  • 编写docker-compose.yml文件:使用文本编辑器(如vim)创建/srv/gitlab/docker-compose.yml,内容如下:
    version: '3.7'
    services:
      gitlab:
        image: gitlab/gitlab-ce:latest  # 使用GitLab社区版最新镜像
        container_name: gitlab           # 容器名称
        restart: always                  # 开机自动重启
        hostname: 'gitlab.example.com'   # 容器主机名(需替换为你的域名或IP)
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://gitlab.example.com'  # GitLab外部访问URL(需替换为你的域名或IP)
        ports:
          - '80:80'     # HTTP端口
          - '443:443'   # HTTPS端口(可选,若未配置SSL可注释)
          - '22:22'     # SSH端口(默认22,若宿主机22端口被占用可修改为其他端口,如2222)
        volumes:
          - '/srv/gitlab/config:/etc/gitlab'   # 配置文件挂载
          - '/srv/gitlab/logs:/var/log/gitlab' # 日志文件挂载
          - '/srv/gitlab/data:/var/opt/gitlab' # 数据文件挂载(关键:持久化GitLab数据)
    

    注意:需将gitlab.example.com替换为你的服务器IP或域名;若修改SSH端口,需同步调整portsGITLAB_OMNIBUS_CONFIG中的gitlab_rails['gitlab_shell_ssh_port']参数。

5. 启动GitLab容器

  • 启动容器:在/srv/gitlab目录下运行docker-compose up -d,后台启动GitLab容器。
  • 查看容器状态:执行docker-compose ps,确认容器状态为Up(运行中);若需查看详细日志,运行docker-compose logs -f

6. 配置GitLab

  • 获取初始root密码:运行docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password,查看系统生成的root账户初始密码(仅首次登录有效)。
  • 登录GitLab Web界面:打开浏览器,访问http://gitlab.example.com(替换为你的服务器IP或域名),使用root账户和初始密码登录。
  • 设置外部URL(可选):若需修改访问URL,进入容器执行vim /etc/gitlab/gitlab.rb,修改external_url参数(如external_url 'http://your-domain.com'),然后运行gitlab-ctl reconfigure使配置生效。
  • 配置HTTPS(可选):可使用Let’s Encrypt免费证书,通过certbot工具配置SSL(需提前安装Nginx并配置反向代理)。

7. 验证部署

  • 创建测试项目:登录GitLab后,点击右上角New project,填写项目名称(如test-project),选择Create blank project,完成项目创建。
  • 克隆项目到本地:在项目页面点击Clone,复制HTTPS或SSH地址(如http://gitlab.example.com/root/test-project.git),在本地终端运行git clone <项目地址>,验证Git功能正常。

8. 注意事项

  • 防火墙配置:确保宿主机防火墙允许访问GitLab所需端口(80、443、22)。若使用UFW,运行sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow 22/tcp && sudo ufw enable
  • 数据持久化volumes配置确保了GitLab的配置、日志和数据持久化存储,即使容器删除,数据也不会丢失。
  • 性能优化:生产环境中,建议为GitLab分配更多资源(如CPU、内存),并根据需求调整shm_size(共享内存大小,默认256MB,可适当增加)。

0