ubuntu

ubuntu gitlab容器化部署

小樊
34
2025-07-16 00:42:56
栏目: 智能运维

在Ubuntu上使用Docker容器化部署GitLab是一个相对简单的过程。以下是详细的步骤指南:

前提条件

  1. 安装Docker:确保你的Ubuntu系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:

    sudo apt update
    sudo apt install docker.io
    
  2. 启动并启用Docker服务

    sudo systemctl start docker
    sudo systemctl enable docker
    
  3. 添加GitLab官方GPG密钥

    curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
    
  4. 创建GitLab仓库

    sudo apt install curl openssh-server ca-certificates tzdata perl
    sudo curl -L --output /etc/apt/sources.list.d/gitlab_gitlab-ce.list https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main
    sudo apt update && sudo apt install gitlab-ce
    

使用Docker容器化部署GitLab

  1. 拉取GitLab Docker镜像

    sudo docker pull gitlab/gitlab-ce:latest
    
  2. 运行GitLab容器: 你可以使用以下命令来运行GitLab容器。请根据你的需求调整配置参数。

    sudo 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
    

    解释:

    • --hostname:设置GitLab的主机名。
    • --publish:将容器的端口映射到主机的端口。
    • --name:为容器指定一个名称。
    • --restart always:设置容器在退出时自动重启。
    • --volume:挂载卷,用于持久化配置、日志和数据。
  3. 访问GitLab: 打开浏览器,访问 http://gitlab.example.com。你应该会看到GitLab的安装向导。按照向导完成初始设置,包括设置管理员密码。

配置SSL(可选)

为了安全起见,建议为GitLab配置SSL证书。你可以使用Let’s Encrypt来获取免费的SSL证书。

  1. 安装Certbot

    sudo apt install certbot python3-certbot-dns-cloudflare
    
  2. 获取并安装SSL证书

    sudo certbot certonly --webroot --webroot-path=/var/www/certbot --email your-email@example.com --agree-tos --no-eff-email --staging -d gitlab.example.com
    
  3. 配置Nginx反向代理: 编辑Nginx配置文件(通常位于 /etc/nginx/sites-available/gitlab),添加以下内容:

    server {
        listen 80;
        server_name gitlab.example.com;
    
        location /.well-known/acme-challenge/ {
            root /var/www/certbot;
        }
    
        location / {
            proxy_pass http://localhost:80;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

    启用配置并重启Nginx:

    sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx
    
  4. 重新获取SSL证书

    sudo certbot renew --webroot --webroot-path=/var/www/certbot
    

完成以上步骤后,你的GitLab实例应该已经成功部署并且可以通过HTTPS访问了。

0
看了该问题的人还看了