头图

ARM架构的Ubuntu系统上使用Docker安装并运行GitLab,能够为开发团队提供一个高效、可靠的代码托管和协作平台。以下是详细的步骤指南,涵盖从环境准备到GitLab的配置与管理,确保您能够顺利完成安装并高效使用GitLab。

目录 📚

  1. 前提条件
  2. 安装Docker和Docker-Compose
  3. 配置Docker-Compose文件
  4. 启动GitLab容器
  5. 访问和配置GitLab
  6. 管理和维护GitLab
  7. 常见问题与解决方案
  8. 总结

前提条件 🔍

在开始之前,请确保您的ARM架构的Ubuntu系统满足以下条件:

  • 操作系统:Ubuntu 18.04及以上版本
  • 处理器架构:ARM64
  • 内存:至少4GB,推荐8GB以上
  • 存储空间:至少20GB,用于GitLab数据
  • 网络连接:稳定的互联网连接,用于下载Docker镜像和更新

安装Docker和Docker-Compose 🛠️

Ubuntu系统上安装DockerDocker-Compose,是运行GitLab容器的基础。

1. 更新系统包索引

首先,确保您的系统包索引是最新的:

sudo apt-get update

解释

  • sudo:以超级用户权限运行命令。
  • apt-get update:更新本地的包索引,以获取最新的软件包信息。

2. 安装Docker

安装Docker前,先安装必要的依赖:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

解释

  • apt-transport-https:允许apt通过HTTPS传输数据。
  • ca-certificates:管理CA证书。
  • curl:用于从网络获取数据。
  • software-properties-common:管理软件仓库的工具。

添加Docker的官方GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

解释

  • curl -fsSL:静默下载Docker的GPG密钥。
  • sudo apt-key add -:将密钥添加到系统中,确保下载的软件包的完整性。

添加Docker的Apt仓库:

sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

解释

  • add-apt-repository:添加新的软件仓库。
  • [arch=arm64]:指定ARM64架构。
  • $(lsb_release -cs):自动获取Ubuntu的版本代号,如focal

更新包索引并安装Docker:

sudo apt-get update
sudo apt-get install docker-ce

解释

  • docker-ce:安装Docker社区版。

启动并启用Docker服务:

sudo systemctl start docker
sudo systemctl enable docker

解释

  • systemctl start docker:启动Docker服务。
  • systemctl enable docker:设置Docker服务开机自启。

验证Docker安装是否成功:

docker --version

示例输出

Docker version 20.10.7, build f0df350

3. 安装Docker-Compose

Docker-Compose用于定义和管理多容器Docker应用程序。

下载Docker-Compose二进制文件:

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

解释

  • curl -L:下载指定版本的Docker-Compose。
  • $(uname -s)$(uname -m):自动获取操作系统和架构信息,确保下载适用于ARM架构的版本。

赋予可执行权限:

sudo chmod +x /usr/local/bin/docker-compose

解释

  • chmod +x:将下载的文件设为可执行。

验证Docker-Compose安装:

docker-compose --version

示例输出

docker-compose version 2.17.3, build 1234567

配置Docker-Compose文件 📝

接下来,我们将创建一个docker-compose.yml文件,用于定义和配置GitLab服务。

1. 创建项目目录

选择一个合适的目录来存放GitLab相关文件,例如/home/user/gitlab

mkdir -p /home/user/gitlab
cd /home/user/gitlab

解释

  • mkdir -p:创建目录,如果上级目录不存在则一并创建。
  • cd:切换到创建的目录。

2. 创建docker-compose.yml文件

使用文本编辑器(如nano)创建并编辑docker-compose.yml文件:

nano docker-compose.yml

在文件中输入以下内容:

version: '3.8'

services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

解释

配置项说明
version: '3.8'指定Docker-Compose的版本。
services定义服务列表,此处只有一个web服务。
image使用GitLab社区版最新镜像。
restart设置容器的重启策略,always表示总是重启。
hostname容器的主机名,需替换为您的域名或IP。
environment设置环境变量,此处配置GitLab的外部URL。
ports映射主机端口到容器端口。
volumes持久化存储GitLab的数据、配置和日志。

3. 替换主机名

gitlab.example.com替换为您自己的域名IP地址。例如,如果您的服务器IP是192.168.1.100,则修改如下:

hostname: '192.168.1.100'
environment:
  GITLAB_OMNIBUS_CONFIG: |
    external_url 'http://192.168.1.100'

注意:如果您计划使用HTTPS,请配置SSL证书并将external_url改为https://您的域名,同时保留443:443端口映射。

启动GitLab容器 🚀

配置完成后,使用Docker-Compose启动GitLab服务。

1. 运行Docker-Compose

docker-compose.yml所在的目录下,执行以下命令:

docker-compose up -d

解释

  • docker-compose up:根据docker-compose.yml文件启动服务。
  • -d:以后台模式运行容器。

2. 监控启动过程

启动过程包括下载Docker镜像和初始化GitLab。您可以使用以下命令查看容器状态:

docker-compose ps

示例输出

     Name                    Command               State           Ports         
-------------------------------------------------------------------------------
gitlab_gitlab_1   /assets/wrapper                 Up      0.0.0.0:80->80/tcp, 
                                           0.0.0.0:443->443/tcp, 
                                           0.0.0.0:22->22/tcp

说明

  • State:显示容器的当前状态,Up表示正在运行。
  • Ports:列出端口映射情况。

3. 初次运行的时间预期

第一次启动可能需要几分钟时间,具体取决于网络速度和系统性能。您可以通过以下命令查看容器日志,了解启动进度:

docker-compose logs -f

解释

  • logs -f:实时跟踪容器的日志输出。

访问和配置GitLab 🌐

启动成功后,您可以通过浏览器访问GitLab。

1. 访问GitLab界面

在浏览器地址栏输入您配置的域名IP地址,例如:

http://192.168.1.100

说明:如果配置了HTTPS,请使用https://前缀。

2. 设置初始管理员密码

首次访问GitLab时,系统会提示您设置管理员(root)密码

  1. 输入新的密码。
  2. 确认密码。

设置完成后,您将能够使用root账户登录GitLab。

3. 登录GitLab

使用以下凭据登录:

  • 用户名root
  • 密码:您在初次设置时指定的密码

注意:强烈建议在登录后立即更新密码并配置其他安全设置。

管理和维护GitLab 🛡️

安装完成后,您可能需要对GitLab进行进一步的配置和维护。以下是一些常见的操作。

1. 修改配置

您可以通过编辑docker-compose.yml文件或直接修改GitLab的配置文件gitlab.rb来调整GitLab的设置。

修改docker-compose.yml

例如,增加内存限制:

services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: '192.168.1.100'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.1.100'
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
    deploy:
      resources:
        limits:
          memory: 2G

解释

  • deploy.resources.limits.memory:限制容器使用的内存为2GB。

修改gitlab.rb

直接编辑配置文件:

nano /srv/gitlab/config/gitlab.rb

说明:更改配置后,需要重新配置GitLab:

docker-compose exec web gitlab-ctl reconfigure

2. 重启GitLab服务

在修改配置后,重启GitLab容器以应用更改:

docker-compose down
docker-compose up -d

解释

  • docker-compose down:停止并移除容器。
  • docker-compose up -d:重新启动容器并在后台运行。

3. 备份GitLab数据

定期备份GitLab数据,以防数据丢失。

使用GitLab自带的备份工具

进入容器内部:

docker-compose exec web bash

执行备份命令:

gitlab-backup create

说明:备份文件将保存在/var/opt/gitlab/backups目录中,映射到主机的/srv/gitlab/data/backups

4. 更新GitLab

保持GitLab最新,以获取最新功能和安全更新。

拉取最新镜像

docker-compose pull

解释

  • docker-compose pull:从Docker Hub拉取最新的GitLab镜像。

重启容器

docker-compose down
docker-compose up -d

说明:应用新的镜像版本。

常见问题与解决方案 ❓

问题1:GitLab无法访问,显示404错误

解决方案

  • 检查容器是否正在运行:

    docker-compose ps
  • 确认端口映射正确,尤其是80和443端口未被其他服务占用。
  • 查看容器日志,寻找错误信息:

    docker-compose logs -f

问题2:GitLab启动缓慢或失败

解决方案

  • 确认系统内存和CPU资源充足。
  • 检查Docker镜像是否为ARM架构兼容版本。
  • 查看容器日志,识别具体错误。

问题3:无法登录GitLab,提示认证失败

解决方案

  • 确认使用正确的root账户和密码。
  • 如果忘记密码,可以通过容器内部重置密码:

    docker-compose exec web gitlab-rake "gitlab:password:reset"

问题4:GitLab数据未持久化

解决方案

  • 确认docker-compose.yml中的volumes配置正确,确保主机目录存在且有适当的权限。
  • 检查主机的磁盘空间是否充足。

工作流程图 🛠️

graph TD
    A[开始] --> B[安装Docker和Docker-Compose]
    B --> C[创建项目目录]
    C --> D[编写docker-compose.yml]
    D --> E[启动GitLab容器]
    E --> F[访问GitLab]
    F --> G[配置和管理GitLab]
    G --> H[维护和备份]
    H --> I[完成]

说明:此流程图概述了从安装Docker到完成GitLab配置的全过程。

重要命令汇总 📝

命令描述示例
sudo apt-get update更新系统包索引sudo apt-get update
sudo apt-get install docker-ce安装Docker社区版sudo apt-get install docker-ce
sudo systemctl start docker启动Docker服务sudo systemctl start docker
docker --version检查Docker版本docker --version
sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose下载Docker-Compose
sudo chmod +x /usr/local/bin/docker-compose赋予Docker-Compose可执行权限sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version检查Docker-Compose版本docker-compose --version
docker-compose up -d启动容器并在后台运行docker-compose up -d
docker-compose down停止并移除容器docker-compose down
docker-compose logs -f实时查看容器日志docker-compose logs -f
docker-compose exec web bash进入容器内部docker-compose exec web bash
gitlab-backup create创建GitLab备份gitlab-backup create
gitlab-rake "gitlab:password:reset"重置GitLab密码gitlab-rake "gitlab:password:reset"

注意事项 ⚠️

  • 数据持久化:确保docker-compose.yml中的volumes路径正确,并具有适当的读写权限,以保证数据的持久化和安全。
  • 安全性:建议配置HTTPS,以保护数据传输的安全。可以使用Let's Encrypt或其他SSL证书。
  • 资源监控:定期监控系统资源使用情况,确保GitLab运行流畅。可使用docker stats命令实时查看容器资源使用。
  • 备份策略:定期备份GitLab数据,防止意外数据丢失。建议将备份存储在不同的物理位置或使用云存储服务。
  • 更新管理:定期检查并更新Docker镜像,确保GitLab获得最新的功能和安全修复。

总结 ✨

ARM架构的Ubuntu系统上通过Docker安装和运行GitLab,能够有效利用容器化技术带来的便捷与高效。通过以下关键步骤,您可以轻松完成安装并配置GitLab:

  1. 安装Docker和Docker-Compose:确保基础环境的搭建。
  2. 配置Docker-Compose文件:定义GitLab服务的详细配置。
  3. 启动GitLab容器:通过Docker-Compose快速部署GitLab。
  4. 访问和配置GitLab:初始设置和日常管理。
  5. 维护和备份:确保GitLab数据的安全与系统的稳定运行。

通过合理的配置和定期的维护,您可以在ARM架构的Ubuntu系统上稳定运行GitLab,支持团队的开发与协作需求。希望本指南能够帮助您顺利完成GitLab的安装与配置,开启高效的开发之旅!


蓝易云
25 声望3 粉丝