首页主机资讯GitLab在Ubuntu上如何进行容器化部署

GitLab在Ubuntu上如何进行容器化部署

时间2025-10-10 19:59:04发布访客分类主机资讯浏览769
导读:GitLab在Ubuntu上的容器化部署指南 容器化部署GitLab(如使用Docker)能显著提升环境一致性、简化运维流程。以下是基于Ubuntu系统的详细步骤及关键说明: 一、准备工作 1. 更新系统包 确保Ubuntu系统包为最新版本...

GitLab在Ubuntu上的容器化部署指南

容器化部署GitLab(如使用Docker)能显著提升环境一致性、简化运维流程。以下是基于Ubuntu系统的详细步骤及关键说明:

一、准备工作

1. 更新系统包

确保Ubuntu系统包为最新版本,避免依赖冲突:

sudo apt update &
    &
     sudo apt upgrade -y

2. 安装Docker

Docker是容器化部署的核心工具,通过以下命令安装稳定版:

# 安装必要依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker仓库
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
# 安装Docker CE
sudo apt update &
    &
     sudo apt install -y docker-ce docker-ce-cli containerd.io
# 启动Docker并设置开机自启
sudo systemctl start docker &
    &
 sudo systemctl enable docker

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

Docker Compose可简化多容器应用的管理(如GitLab搭配Redis、PostgreSQL),通过以下命令安装:

# 下载最新版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  # 社区版(若需企业版,替换为gitlab/gitlab-ee:latest)
    container_name: gitlab
    restart: always  # 容器异常退出时自动重启
    hostname: 'gitlab.example.com'  # 主机名(若用域名,需替换为真实域名)
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com:5480'  # 外部访问URL(需与ports配置一致)
        gitlab_rails['gitlab_shell_ssh_port'] = 5022  # SSH端口(避免与宿主机SSH冲突)
    ports:
      - '5480:80'    # HTTP端口(Web界面)
      - '5443:443'   # HTTPS端口(可选,需配置SSL)
      - '5022:22'    # SSH端口(可选,替代宿主机22端口)
    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

通过docker-compose ps命令查看容器状态,确认gitlab服务为Up状态。

三、访问与初始化配置

1. 获取初始root密码

GitLab容器启动后,初始root用户的密码会保存在容器内的/etc/gitlab/initial_root_password文件中。通过以下命令查看:

docker exec -it gitlab cat /etc/gitlab/initial_root_password

密码有效期为24小时,需及时修改。

2. 访问Web界面

在浏览器中输入http://< 服务器IP> :5480(若用域名,替换为http://gitlab.example.com:5480),使用root账户及上述密码登录。

3. 完成初始设置

  • 登录后,首先修改root用户的密码(建议使用强密码)。
  • 根据需求配置GitLab基本设置(如项目创建、用户管理、集成SMTP邮件服务等)。

四、关键配置优化

1. 配置外部访问URL

若需通过域名访问GitLab,需修改docker-compose.yml中的external_url(如external_url 'http://gitlab.example.com:5480'),并确保域名已解析到服务器IP。修改后重新启动容器使配置生效:

docker-compose down &
    &
     docker-compose up -d

2. 配置HTTPS(可选但推荐)

为保障数据传输安全,建议启用HTTPS。可通过Let’s Encrypt获取免费SSL证书,并修改docker-compose.yml中的external_urlhttps://gitlab.example.com:5443,同时在GITLAB_OMNIBUS_CONFIG中添加SSL配置:

environment:
  GITLAB_OMNIBUS_CONFIG: |
    external_url 'https://gitlab.example.com:5443'
    nginx['redirect_http_to_https'] = true
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"

将Let’s Encrypt证书(fullchain.pemprivkey.pem)复制到宿主机的/srv/gitlab/ssl目录,并挂载到容器内对应路径。

3. 配置SSH端口

若宿主机22端口已被占用(如宿主机自身SSH服务),需修改GitLab容器的SSH端口(如5022),并在GITLAB_OMNIBUS_CONFIG中设置gitlab_rails['gitlab_shell_ssh_port'] = 5022。修改后,用户需通过ssh -p 5022 git@gitlab.example.com访问GitLab。

五、维护与管理

1. 查看容器日志

通过以下命令查看GitLab容器的实时日志,排查问题:

docker-compose logs -f

2. 停止与重启容器

  • 停止容器:docker-compose stop
  • 重启容器:docker-compose restart

3. 备份数据

GitLab数据已持久化到宿主机的/srv/gitlab目录,定期备份该目录即可(如使用rsynctar命令)。

4. 升级GitLab

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

docker-compose pull &
    &
     docker-compose up -d

升级前建议备份数据,避免升级失败导致数据丢失。

通过以上步骤,即可在Ubuntu系统上完成GitLab的容器化部署。容器化部署不仅简化了GitLab的安装流程,还能通过Docker的特性实现快速迁移、扩展和维护。

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


若转载请注明出处: GitLab在Ubuntu上如何进行容器化部署
本文地址: https://pptw.com/jishu/722811.html
Debian环境下env文件怎么管理 如何利用Debian定时器实现自动化任务

游客 回复需填写必要信息