linux

Linux中GitLab的容器化部署怎么做

小樊
46
2025-06-15 10:06:16
栏目: 智能运维

在Linux上进行GitLab的容器化部署是一个相对简单且高效的方法,可以省去手动安装和配置的繁琐步骤。以下是详细的步骤指南:

准备工作

  1. 安装Docker:确保你的Linux系统上已经安装了Docker。如果没有安装,可以参考Docker官方文档进行安装。
  2. 安装Docker Compose(可选但推荐):Docker Compose可以简化多容器应用的管理。你可以从Docker官网获取安装指南。

部署步骤

方法一:使用 docker run 命令

  1. 拉取GitLab镜像

    docker pull gitlab/gitlab-ce:latest
    
  2. 创建并启动GitLab容器

    docker run --detach \
      --hostname gitlab.example.com \
      --publish 443:443 \
      --publish 80:80 \
      --publish 22:22 \
      --name gitlab \
      --restart always \
      --volume /srv/gitlab/config:/etc/gitlab \
      --volume /srv/gitlab/logs:/var/log/gitlab \
      --volume /srv/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest
    

    解释:

    • --detach:后台运行容器。
    • --hostname:设置容器的主机名。
    • --publish:将容器端口映射到宿主机端口。
    • --name:设置容器名称。
    • --restart always:容器退出时自动重启。
    • --volume:挂载数据卷。
  3. 访问GitLab:打开浏览器,访问 http://gitlab.example.com,按照提示设置管理员账号和密码。

方法二:使用 docker-compose

  1. 创建 docker-compose.yml 文件

    version: '3.6'
    services:
      gitlab:
        image: gitlab/gitlab-ee:17.4.5-ee.0
        container_name: gitlab
        restart: always
        ports:
          - '5480:80'
          - '5443:443'
          - '5022:22'
        volumes:
          - './config:/etc/gitlab'
          - './logs:/var/log/gitlab'
          - './data:/var/opt/gitlab'
          - '256m'
    
  2. 启动GitLab容器

    docker-compose up -d
    
  3. 进入容器获取初始密码

    docker exec -it gitlab /bin.bash
    cat /etc/gitlab/initial_root_password
    

    在浏览器中输入获取的密码,设置新密码后登录。

配置GitLab

  1. 修改外部URL:进入容器修改配置文件:

    docker exec -it gitlab /bin/bash
    vi /etc/gitlab/gitlab.rb
    

    修改 external_url 配置项为你的服务器地址。

  2. 启用HTTPS:编辑 gitlab.rb 文件,添加或修改以下配置:

    letsencrypt['enabled'] = true
    letsencrypt['contact_emails'] = ['your.email@example.com']
    

    然后重新配置并重启GitLab:

    gitlab-ctl reconfigure
    gitlab-ctl restart
    

注意事项

通过以上步骤,你就可以在Linux上成功部署GitLab,并享受容器化带来的便利和高效。如果有任何问题,可以参考GitLab的官方文档或相关社区资源。

0
看了该问题的人还看了