linux

GitLab于Linux怎样实现容器化部署

小樊
42
2025-09-23 06:20:40
栏目: 智能运维

GitLab在Linux上的容器化部署指南(基于Docker)

一、准备工作

1. 安装Docker

Docker是GitLab容器化的基础环境,需先通过包管理器安装(以Ubuntu为例):

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl -fsSL https://get.docker.com | sudo sh
sudo systemctl enable --now docker

2. 安装Docker Compose(可选但推荐)

用于简化多容器应用的管理(如GitLab+CI/CD):

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证安装:docker-compose --version

二、容器化部署GitLab

1. 使用Docker Compose部署(推荐)

步骤1:创建数据目录
用于持久化存储GitLab的配置、日志和数据(避免容器删除后数据丢失):

mkdir -p /data/gitlab/{config,logs,data}

步骤2:创建docker-compose.yml文件
/data/gitlab目录下创建文件,内容如下:

version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest  # 使用社区版镜像(如需企业版,替换为gitlab/gitlab-ee:latest)
    container_name: gitlab
    restart: always  # 容器自动重启
    ports:
      - '5480:80'   # HTTP端口(Web界面)
      - '5443:443'  # HTTPS端口
      - '5022:22'   # SSH端口(默认22,可修改为其他端口)
    volumes:
      - './config:/etc/gitlab'     # 配置文件挂载
      - './logs:/var/log/gitlab'   # 日志文件挂载
      - './data:/var/opt/gitlab'   # 数据文件挂载(仓库、数据库等)
    shm_size: '256m'  # 共享内存大小(解决GitLab运行时的内存不足问题)

步骤3:启动GitLab容器
进入/data/gitlab目录,执行:

docker-compose up -d

步骤4:获取初始root密码
容器启动后,进入容器查看初始密码:

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

步骤5:访问GitLab Web界面
在浏览器输入http://<服务器IP>:5480,使用root账号和上述初始密码登录。

2. 使用Docker命令行直接部署(备选)

若未使用Docker Compose,可通过以下命令快速部署:

docker run -d \
  --hostname gitlab.example.com \  # 设置容器主机名(需与external_url一致)
  -p 8443:443 -p 8080:80 -p 2222:22 \  # 端口映射(自定义宿主机端口)
  --name gitlab \
  --restart always \
  -v /srv/gitlab/config:/etc/gitlab \  # 自定义数据目录
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

注意:启动后需通过docker exec进入容器获取初始密码(同上)。

三、基本配置

1. 修改外部URL(可选)

若需使用自定义域名或IP,需修改GitLab配置文件:

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

找到external_url配置项,修改为:

external_url 'http://your_server_ip'  # 或'https://your_domain.com'

保存后退出,执行以下命令使配置生效:

gitlab-ctl reconfigure
gitlab-ctl restart

2. 配置HTTPS(可选)

GitLab支持Let’s Encrypt免费证书,修改gitlab.rb文件:

letsencrypt['enabled'] = true
letsencrypt['contact_emails'] = ['your.email@example.com']  # 填写有效邮箱

执行gitlab-ctl reconfiguregitlab-ctl restart即可自动申请证书。

四、注意事项

  1. 数据持久化:确保volumes挂载的宿主机目录存在且有读写权限(如/data/gitlab目录需由当前用户拥有)。
  2. 端口冲突:若宿主机端口(如80、443、22)已被占用,需修改docker-compose.ymldocker run中的端口映射(如将5480:80改为8080:80)。
  3. 安全性:首次登录后需修改root密码(默认密码复杂度较高,建议使用强密码);如需禁用用户注册,可修改gitlab.rb中的gitlab_rails['signup_enabled'] = false
  4. 资源分配:GitLab对资源要求较高,建议分配至少2核CPU、4GB内存(生产环境需更高配置)。

0
看了该问题的人还看了