网站更新内容:请访问: https://bigdata.ministep.cn/

如何使用 Docker Compose 安装 GitLab?

[如何使用 Docker Compose 安装 GitLab?](https://www.czerniga.it/2021/11/14/how-to-install-gitlab-using-docker-compose/)

你好。今天我将向你展示如何在一小时内安装 GitLab 服务器并在其中运行你的第一个 CI/CD 进程。

本文是有关如何开始使用流行的 CI/CD 工具的系列文章的一部分。在本文中,我将向您展示如何安装 CI/CD 工具以及如何准备构建和测试基于 Maven 的简单项目的过程。

 

什么是 GitLab?

Gitlab 是一个使用持续集成和持续交付流程支持软件开发的工具。它的主要组件是 Git 版本控制系统。此外,它还提供了许多功能,支持程序员在各种环境下持续构建、测试和自动安装项目的工作。

什么是 Docker Compose?

要了解 Docker Compose 是什么,请参阅文章:如何使用 Docker Compose 安装 Jenkins?

所需工具

在开始工作之前,准备好所需的工具。您可以在网站上找到这些工具的说明: 如何使用 Docker Compose 安装 Jenkins?

Docker Compose 的配置

我们将通过创建一个专用目录来开始安装工作,我们将在其中存储数据和 Gitlab 配置。

> mkdir gitlab

 

为方便起见,我们还将设置一个包含 Gitlab 目录路径的环境变量:

> export GITLAB_HOME=$(pwd)/gitlab

 

在下一步中,我们创建具有以下内容的 docker-compose.yml 文件:

 

# docker-compose.yml
version: '3.7'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'localhost'
    container_name: gitlab-ce
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost'
    ports:
      - '8080:80'
      - '8443:443'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    networks:
      - gitlab
  gitlab-runner:
    image: gitlab/gitlab-runner:alpine
    container_name: gitlab-runner    
    restart: always
    depends_on:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - '$GITLAB_HOME/gitlab-runner:/etc/gitlab-runner'
    networks:
      - gitlab

networks:
  gitlab:
    name: gitlab-network

此配置定义了我们要运行的容器。在我们的例子中,它将是带有一个 GitLab 运行器的 GitLab 服务(一个用于运行 CI / CD 任务的单独模块)。最重要的配置参数是:

  • image – 我们想在我们的服务器中使用的 docker 镜像
  • 端口——我们在容器外提供的端口列表。在我们的配置中,我们提供端口 80、443(网站)
  • container_name – 我们的容器的名称
  • volumes - 指定容器使用的卷。在我们的配置中,我们有与我们的系统共享的目录($ GITLAB_HOME 中的子目录)和一个允许从 GitLab 运行器访问 Docker 环境的附加卷。
  • 网络——定义容器将在其中运行的虚拟网络。在我们的例子中,www 门户和运行器在一个“gitlab-network”中运行

Gitlab 安装

使用以下命令启动容器:

> docker-compose up -d

 

一旦启动,Docker 将从服务器下载 GitLab 和 GitLab Runner 图像。在我的电脑上看起来像这样:

码头工人撰写码头工人撰写

首次登录 GitLab 需要一个临时密码,该密码在安装过程中自动生成。我们使用以下命令获取密码:

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

 

GitLab 启动

我们的 GitLab 位于:http://localhost:8080转到此地址后,应出现以下屏幕:

注意:门户首次启动可能需要几分钟时间。

要登录门户,我们必须在用户名字段中输入“root”,并在密码字段中输入我们之前获得的临时密码

登录后,应出现以下屏幕:

GitLabGitLab

恭喜,GitLab 已经成功上线!

门户的初始配置

在我们继续之前,值得更改一些门户设置。首先,我们将关闭所有人的公开注册。为此,请单击上方栏中可用的 View Setting 按钮并显示警告(面板地址; http://localhost:8080/admin/application_settings/general#js-signup-setting s )。在新页面上,取消选中启用注册并保存更改。

下一步应该是更改 root 用户。为此,请访问网站: http://localhost:8080/-/profile/account并在更改用户名字段中输入名称。我们通过单击更新用户名来批准。

我们要做的最后一个更改是更改密码。为此,请转到页面:ost:8080/-/profile/password/edit并输入临时密码和新密码。我们通过单击Save password批准更改

GitLab 运行器配置

要在 GitLab 中使用 GitLab 运行器,您需要对其进行配置。为了正确配置,我们需要从门户复制的令牌。为此,请转到地址:http://localhost:8080/admin/runners并单击复制令牌按钮。

在下一步中,它会转到控制台并运行以下命令:

> docker exec -it gitlab-runner gitlab-runner register --url "http://gitlab-ce" --clone-url "http://gitlab-ce"

 

启动后,会出现一个配置模块。该模块提供以下信息:

  • 输入 GitLab 实例 URL:确认输入的值(点击回车)
  • 输入注册令牌:输入之前复制的令牌。
  • 输入跑步者的描述:输入跑步者的名字,例如 docker-runner
  • 输入跑步者的标签:此处留空
  • 输入执行者:在此处输入 docker
  • 输入默认的 Docker 镜像:这里我们提供默认的 docker 镜像,例如 maven: latest

正确配置后,我们应该看到确认Runner 注册成功

除了基本配置外,我们还需要允许从 runner 启动的容器访问 GitLab 运行所在的虚拟网络。为此,我们运行编辑器(例如 vi)

>  sudo vi gitlab/gitlab-runner/config.toml

 

然后我们在运行器配置的末尾添加新行:network_mode = “gitlab-network”

要检查 runner 是否在 GitLab 级别可用,请转到以下地址:http://localhost:8080/admin/runners

 

我们创建了我们的第一个存储库

设置好运行器后,我们可以创建我们的第一个存储库。为此,请转到页面: http://localhost:8080/projects/new并单击Import project

Naastępnym ekranie wybieramy导入项目来自:来自 URL 的回购。Następnie podajemy w Git 存储库 URL地址:https ://github.com/czerniga/helloworld.git 。Na końcu zatwierdzamy klikając创建项目

在下一个屏幕上,选择Import project from: Repo from URL然后我们提供 Git 存储库 URL 地址:https ://github.com/czerniga/helloworld.git 。最后,单击 Create project 进行确认。

一段时间后,您应该将第一个存储库复制到您的 GitLab。

 

我们创建 CI/CD 管道

要为项目创建 CI/CD 管道,请单击左侧的主菜单CI/CD,然后单击Editor屏幕上将出现一个创建 .gitlab-ci.yml 文件的选项,该文件将包含我们的管道定义。该文件将在 Git 存储库中创建。

在新屏幕上,我们可以看到我们的管道编辑器。在编辑器中,粘贴以下内容:

image: maven:latest

stages:
  - build
  - test

build-job:
  stage: build
  script:
    - echo "Compiling the code..."
    - mvn clean package
    - echo "Compile complete."
  artifacts:
    paths:
    - target   

test-job:
  stage: test
  dependencies: 
    - build-job  
  script:
    - ls -al
    - echo "Running tests"
    - java -cp target/helloworld-1.1.jar com.coveros.demo.helloworld.HelloWorld

上面的定义描述了 CI/CD 过程应该如何工作。最重要的元素是:

  • image:我们将用于构建项目的 docker 映像
  • 阶段:我们的流程步骤列表
  • build-job:我们构建项目过程中的第一步。此外,我们保存工件以供下一步使用
  • test-job : 运行我们项目的第二步

粘贴我们的文件后,单击Commit changes 确认更改

一旦获得批准,GitLab 将启动该过程。要检查其结果,请转到左侧菜单中的CI/CD ->管道。在屏幕上,我们应该看到我们的第一个任务已经开始。

我们可以通过单击待定按钮或内部版本号#1来查看此任务的详细信息

一段时间后,应该构建和测试任务。

如何使用 Docker Compose 安装 GitLab如何使用 Docker Compose 安装 GitLab

恭喜,您刚刚在 GitLab 中创建了您的第一个 CI/CD 作业!

停止容器

包含我们服务的容器是使用导致后台工作的开关启动的。如果要停止门户,请执行以下命令:

docker-compose down

 

概括

在本教程中,我展示了如何使用一个 GitLab 运行器运行 GitLab。此处给出的配置导致所有网站数据都保存在您的计算机/服务器上的目录中。因此,当容器停止或移除时,数据不会被删除。

posted @ 2022-03-12 10:11  ministep88  阅读(711)  评论(0编辑  收藏  举报
网站更新内容:请访问:https://bigdata.ministep.cn/