首页主机资讯ubuntu gitlab容器化实践指南

ubuntu gitlab容器化实践指南

时间2025-10-14 20:37:03发布访客分类主机资讯浏览939
导读:Ubuntu下GitLab容器化实践指南 一、准备工作 1. 更新系统包 在开始前,确保Ubuntu系统包是最新的,避免依赖冲突: sudo apt update && sudo apt upgrade -y 2. 安装D...

Ubuntu下GitLab容器化实践指南

一、准备工作

1. 更新系统包

在开始前,确保Ubuntu系统包是最新的,避免依赖冲突:

sudo apt update &
    &
     sudo apt upgrade -y

2. 安装Docker Engine

GitLab容器化依赖Docker作为容器运行环境。通过以下命令安装Docker:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
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 start docker &
    &
 sudo systemctl enable docker  # 启动并设置开机自启

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

Docker Compose简化多容器应用的部署与管理,建议安装:

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. 创建数据持久化目录

GitLab的数据(配置、日志、仓库)需持久化存储,避免容器重启后丢失。在宿主机创建专用目录:

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

2. 编写docker-compose.yml文件

/srv/gitlab目录下创建docker-compose.yml,定义GitLab服务配置:

version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest  # 使用社区版镜像(生产环境建议指定版本,如25.0.0)
    container_name: gitlab
    restart: always  # 开机自启
    hostname: 'gitlab.example.com'  # 替换为你的服务器域名或IP
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'  # 外部访问URL(若用域名需提前解析DNS)
        gitlab_rails['gitlab_shell_ssh_port'] = 2222  # 修改SSH端口(避免与宿主机SSH冲突)
    ports:
      - '80:80'     # HTTP访问
      - '443:443'   # HTTPS访问(若启用SSL需额外配置)
      - '2222:2222' # SSH端口(与上文GITLAB_OMNIBUS_CONFIG中的端口一致)
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'  # 配置文件挂载
      - '/srv/gitlab/logs:/var/log/gitlab'  # 日志文件挂载
      - '/srv/gitlab/data:/var/opt/gitlab'  # 数据文件挂载(仓库、用户数据等核心数据)
    shm_size: '256m'  # 共享内存大小(解决大文件上传时的内存不足问题)

3. 启动GitLab容器

docker-compose.yml所在目录执行以下命令,启动GitLab服务:

cd /srv/gitlab
docker-compose up -d  # 后台启动容器

4. 获取初始root密码

首次启动时,GitLab会自动生成root用户的初始密码,存储在容器内的/etc/gitlab/initial_root_password文件中。通过以下命令查看:

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

注意:初始密码仅在24小时内有效,需及时登录修改。

三、访问与配置GitLab

1. 访问Web界面

打开浏览器,输入http://gitlab.example.com(替换为你的服务器IP或域名),使用root用户及初始密码登录。

2. 配置外部URL(可选)

若需修改访问URL(如从IP改为域名),可通过以下步骤操作:

docker exec -it gitlab vim /etc/gitlab/gitlab.rb  # 编辑配置文件
# 修改以下内容(将gitlab.example.com替换为你的域名)
external_url 'http://gitlab.example.com'
# 保存退出后,重载配置
docker exec -it gitlab gitlab-ctl reconfigure
docker exec -it gitlab gitlab-ctl restart

3. 配置SSH访问(可选)

若修改了GitLab的SSH端口(如上文设置为2222),需更新本地SSH配置以正常克隆仓库:

# 编辑本地~/.ssh/config文件
vim ~/.ssh/config
# 添加以下内容(替换gitlab.example.com为你的服务器地址)
Host gitlab.example.com
  Port 2222
  User git

之后可通过ssh -T git@gitlab.example.com测试连接。

四、维护与管理

1. 停止与启动容器

docker-compose stop  # 停止容器
docker-compose start  # 启动容器

2. 删除容器(谨慎操作)

若需彻底删除GitLab容器及数据(数据会丢失),执行:

docker-compose down  # 删除容器
rm -rf /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data  # 删除数据目录(可选)

3. 备份数据

定期备份/srv/gitlab/data目录(包含仓库、用户信息等核心数据),建议使用rsynctar命令:

sudo tar -czvf /backup/gitlab_data_$(date +%F).tar.gz /srv/gitlab/data

4. 升级GitLab

若需升级GitLab版本,修改docker-compose.yml中的image标签(如gitlab/gitlab-ce:25.0.0),然后执行:

docker-compose pull  # 拉取新镜像
docker-compose up -d  # 重启容器(自动应用新版本)

五、注意事项

1. 端口冲突

  • 若宿主机已使用22端口(SSH),需修改GitLab的SSH端口(如2222),并更新docker-compose.yml中的portsGITLAB_OMNIBUS_CONFIG配置。
  • 确保ports中的端口(80、443、2222)未被其他服务占用。

2. 数据持久化

  • 必须挂载configlogsdata目录到宿主机,否则容器重启后数据会丢失。
  • 确保挂载目录的权限正确(chown -R 1000:1000 /srv/gitlab),避免容器内进程无法写入。

3. 防火墙配置

若使用UFW防火墙,需开放相关端口:

sudo ufw allow 80/tcp  # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 2222/tcp # SSH(若修改了端口)
sudo ufw reload

4. 生产环境建议

  • 使用特定版本:避免使用latest标签,指定具体版本(如gitlab/gitlab-ce:25.0.0),确保稳定性。
  • 启用HTTPS:通过Let’s Encrypt证书配置HTTPS,提升数据传输安全性。可使用gitlab-ctl configure-ssl命令或Nginx反向代理实现。
  • 资源分配:GitLab对CPU、内存要求较高,建议分配至少2核CPU、4GB内存给宿主机。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu gitlab容器化实践指南
本文地址: https://pptw.com/jishu/726246.html
MongoDB在Ubuntu上的认证方式 ubuntu gitlab高可用架构设计

游客 回复需填写必要信息