linux

Linux版GitLab的容器化部署方法

小樊
51
2025-11-10 23:23:43
栏目: 智能运维

Linux版GitLab容器化部署指南
GitLab容器化部署通过Docker实现,具备环境隔离、快速部署、易迁移等优势。以下是详细步骤及注意事项:

一、准备工作

  1. 安装Docker
    根据Linux发行版选择安装方式(以Ubuntu为例):

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl gnupg lsb-release
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl enable --now docker
    
  2. 安装Docker Compose(可选但推荐)
    Docker Compose简化多容器管理,安装命令:

    sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 准备数据目录
    创建宿主机目录用于持久化GitLab数据(避免容器删除后数据丢失):

    sudo mkdir -p /srv/gitlab/{config,logs,data}
    sudo chown -R 1000:1000 /srv/gitlab  # GitLab容器内用户UID为1000,需匹配权限
    

二、容器化部署(两种方式)

1. 使用Docker Compose(推荐)

2. 使用Docker命令行(手动部署)

三、初始配置

  1. 获取root初始密码
    容器启动后,进入容器查看root用户的初始密码:

    docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
    

    复制输出的密码,用于首次登录。

  2. 访问GitLab Web界面
    浏览器输入http://<服务器IP>:8080(若配置了域名,替换为域名),使用root账号和初始密码登录。

  3. 修改root密码
    登录后,系统强制要求修改root密码(密码需包含大小写字母、数字和特殊字符)。

  4. 配置外部URL(可选但推荐)
    若需使用自定义域名或修改访问端口,编辑GitLab配置文件:

    docker exec -it gitlab vim /etc/gitlab/gitlab.rb
    

    修改以下内容(以http://gitlab.example.com为例):

    external_url 'http://gitlab.example.com'
    gitlab_rails['gitlab_shell_ssh_port'] = 2222  # 与Docker端口映射一致
    

    保存后重载配置:

    docker exec -it gitlab gitlab-ctl reconfigure
    docker exec -it gitlab gitlab-ctl restart
    

四、常见问题解决

  1. 502 Bad Gateway错误
    通常因端口冲突或GitLab服务未启动导致。检查端口映射是否冲突(如宿主机80端口已被占用),或重启容器:

    docker restart gitlab
    
  2. SSH连接失败
    确保宿主机SSH端口(如2222)已开放,且GitLab配置中的gitlab_shell_ssh_port与端口映射一致。

  3. 数据持久化验证
    删除容器后,重新使用相同docker-compose.ymldocker run命令启动,数据会从宿主机目录恢复。

五、注意事项

0
看了该问题的人还看了