通过Docker Compose部署GitLab和GitLab Runner(一)

GitLab 是一个用于版本控制、项目管理和持续集成的开源软件平台,它提供了一整套工具,能够帮助团队高效地协作开发。而 GitLab Runner 则是 GitLab CI/CD 的执行者,用于运行持续集成和持续交付任务。

在本文中,我们将使用 Docker Compose 来快速部署 GitLab 和 GitLab Runner。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具,它通过一个 YAML 文件来配置服务的运行方式。

编写 Docker Compose 文件

首先,我们需要创建一个名为 docker-compose.yml 的文件,并将以下内容添加到文件中:

version: '3.8'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        # 对外访问gitlab地址,可以使用本机IP
        external_url 'http://192.168.184.200:9080'
        gitlab_rails['gitlab_shell_ssh_port'] = 9022
    ports:
      - '9080:9080' # 注意宿主机和容器内部的端口要一致,否则external_url无法访问
      - '9443:443'
      - '9022:22'
    volumes:
      - '/opt/store/gitlab/config:/etc/gitlab'
      - '/opt/store/gitlab/logs:/var/log/gitlab'
      - '/opt/store/gitlab/data:/var/opt/gitlab'
    shm_size: '1g'


  gitlab-runner:
    image: 'gitlab/gitlab-runner:latest'
    container_name: "gitlab-runner"
    restart: always
    volumes:
      - '/opt/store/gitlab-runner:/etc/gitlab-runner'
      - '/var/run/docker.sock:/var/run/docker.sock' #这个挂载是将宿主机上的docker socket挂载到了容器内,这样容器内执行的docker命令会被宿主机docker daemon最终执行

在这个 Docker Compose 文件中,我们定义了两个服务:GitLab 和 GitLab Runner。GitLab 服务使用 gitlab/gitlab-ce:latest 镜像,而 GitLab Runner 使用 gitlab/gitlab-runner:latest 镜像。我们设置了各种环境变量、端口映射和卷挂载,以确保 GitLab 和 GitLab Runner 正常运行,并且能够持久化数据。

启动服务

完成 Docker Compose 文件的编写后,我们可以使用以下命令来启动服务:

docker-compose up -d

这将会启动 GitLab 和 GitLab Runner 服务,并且以后台模式运行。你可以使用 docker ps 命令来验证服务是否已经成功启动。

访问 GitLab

一旦服务启动成功,就可以通过浏览器访问 GitLab。在本例中,我们将 GitLab 设置为在 http://192.168.184.200:9080 地址上运行。只需在浏览器中输入该地址,即可访问 GitLab 界面。

第一次登录时,默认用户名是root,其初始密码需要通过以下方式获取:

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

登录成功之后,需要更改初始密码,毕竟那一串初始密码根本记不住(*^_^*)

总结

通过Docker Compose的方式部署GitLab非常方便快捷,下一篇将介绍GitLab自带的CI/CD功能如何使用。

相关推荐
杨浦老苏1 小时前
开源音乐管理软件Melody
docker·群晖·多媒体
杨浦老苏3 小时前
面向npm的实时仪表板Dashly
网络·docker·群晖·导航
JunLan~5 小时前
Docker 部署 GLPI(IT 资产管理软件系统)
运维·docker·容器
特立独行的猫a6 小时前
使用 Docker(Podman) 部署 MongoDB 数据库及使用详解
数据库·docker·podman
画船听雨眠aa7 小时前
gitlab云服务器配置
服务器·git·elasticsearch·gitlab
LUCIAZZZ8 小时前
基于Docker以KRaft模式快速部署Kafka
java·运维·spring·docker·容器·kafka
特立独行的猫a12 小时前
Golang 应用的 Docker 部署方式介绍及使用详解
开发语言·docker·golang
康世行13 小时前
Windows环境下MaxKB大模型 Docker部署图文指南
windows·docker·容器
程序员石磊1 天前
学术总结Ai Agent中firecrawl(大模型爬虫平台)的超简单的docker安装方式教程
人工智能·爬虫·docker
司江龙1 天前
centos7 配置国内镜像源安装 docker
运维·docker·容器