ubuntu中gitlab容器化部署方案
Ubuntu中GitLab容器化部署方案(基于Docker Compose)
一、准备工作
1. 系统更新与工具安装
首先更新系统软件包并安装必要工具,确保后续操作顺利:
sudo apt update &
&
sudo apt upgrade -y
sudo apt install -y curl wget nano
2. 安装Docker与Docker Compose
2.1 安装Docker
使用官方脚本快速安装Docker(推荐):
curl -fsSL https://get.docker.com | sudo sh
若脚本执行失败,可手动下载Ubuntu 24.04对应的deb包(如containerd.io_1.7.25-1_amd64.deb、docker-ce_28.0.1-1~ubuntu.24.04~noble_amd64.deb等),上传至服务器后通过dpkg -i *.deb安装。
将当前用户加入docker组,避免每次使用docker命令需sudo:
sudo usermod -aG docker $USER
newgrp docker # 或重新登录终端使权限生效
2.2 安装Docker Compose
下载最新版Docker Compose二进制文件并设置权限:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose --version # 应输出版本号(如v2.33.1)
3. 创建GitLab数据目录
用于持久化存储GitLab的配置、日志和数据(避免容器删除后数据丢失):
mkdir -p ~/gitlab/{
config,logs,data}
二、编写Docker Compose文件
在~/gitlab目录下创建docker-compose.yml文件,内容如下:
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest # 社区版(若需企业版则替换为gitlab/gitlab-ee:latest)
container_name: gitlab
restart: always # 开机自启
hostname: 'gitlab.yourdomain.com' # 替换为你的域名或服务器IP
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.yourdomain.com' # 外部访问地址(需与hostname一致)
gitlab_rails['time_zone'] = 'Asia/Shanghai' # 设置时区(根据需求调整)
ports:
- "80:80" # HTTP端口(用于Web界面)
- "443:443" # HTTPS端口(可选,需配置SSL)
- "2222:22" # SSH端口(避免与宿主机SSH冲突,默认22端口易被占用)
volumes:
- ./config:/etc/gitlab # 配置文件挂载
- ./logs:/var/log/gitlab # 日志文件挂载
- ./data:/var/opt/gitlab # 数据文件挂载(核心数据,如仓库、数据库)
shm_size: '256m' # 共享内存大小(解决GitLab运行时的内存不足问题)
关键参数说明:
hostname:必须与external_url一致,否则会导致GitLab无法正常访问。ports:2222:22将宿主机的2222端口映射到容器的22端口(SSH默认端口),避免与宿主机SSH服务冲突。volumes:持久化存储GitLab的关键数据,确保容器重启或删除后数据不丢失。shm_size:共享内存大小,GitLab运行时需要足够的内存(建议至少256MB)。
三、启动GitLab容器
进入~/gitlab目录,执行以下命令启动GitLab容器:
cd ~/gitlab
docker-compose up -d
-d参数表示后台运行容器。启动后,可通过以下命令查看容器状态:
docker-compose ps
若容器状态为Up,则表示启动成功。
四、访问与初始化GitLab
1. 获取初始root密码
GitLab首次启动后,root用户的初始密码会生成在~/gitlab/config/initial_root_password文件中(有效期24小时):
cat ~/gitlab/config/initial_root_password
复制密码,用于首次登录。
2. 浏览器访问GitLab
在浏览器中输入http://gitlab.yourdomain.com(替换为hostname或服务器IP),进入GitLab Web界面。
首次登录时,使用root用户和上述初始密码登录。
3. 首次登录配置
- 登录后,系统会提示修改root用户密码(建议设置强密码)。
- 进入GitLab后,若出现“Check your sign-up restrictions”提示,点击“Deactivate”禁用注册限制(生产环境可根据需求开启)。
五、常见问题解决
1. SSH端口冲突
若宿主机22端口已被其他服务(如SSH)占用,可将docker-compose.yml中的ports部分修改为2222:22(如上述配置),然后通过ssh -p 2222 root@gitlab.yourdomain.com访问GitLab的SSH服务。
2. 防火墙配置
若服务器启用了防火墙(如UFW),需开放对应端口:
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS(可选)
sudo ufw allow 2222/tcp # SSH(若修改了端口)
sudo ufw reload
3. 日志排查
若GitLab无法启动,可通过以下命令查看容器日志:
docker-compose logs -f
根据日志中的错误信息(如端口冲突、磁盘空间不足等)进行排查。
六、后续优化(可选)
1. 配置HTTPS
为提升安全性,建议为GitLab配置SSL证书(如Let’s Encrypt免费证书)。步骤如下:
- 安装Certbot:
sudo apt install -y certbot python3-certbot-nginx - 获取证书:
sudo certbot --nginx -d gitlab.yourdomain.com - 修改
docker-compose.yml中的GITLAB_OMNIBUS_CONFIG,添加SSL配置:GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.yourdomain.com' nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem" - 重启GitLab容器:
docker-compose down & & docker-compose up -d
2. 高可用配置
对于生产环境,建议配置GitLab高可用(HA),通过多个节点实现负载均衡和故障转移。具体步骤可参考GitLab官方文档。
通过以上步骤,即可在Ubuntu上完成GitLab的容器化部署。容器化部署具有轻量、灵活、易于迁移等优点,适合快速搭建GitLab实例。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu中gitlab容器化部署方案
本文地址: https://pptw.com/jishu/738251.html
