通过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功能如何使用。

相关推荐
Gss77711 分钟前
Docker 容器核心知识总结
docker·容器
罗技12311 分钟前
Docker 启动 Easysearch 时自定义初始密码的几种方式
运维·docker·容器
码路工人2 小时前
附录B:kubectl 命令速查表 - Kubernetes 集群管理必备指南
docker·云原生·容器
码路工人2 小时前
附录A:常用 Docker 命令速查表
docker·云原生·容器
zcz16071278213 小时前
Docker Compose 搭建 LNMP 环境并部署 WordPress 论坛
android·adb·docker
java之迷11 小时前
Windows环境下,源码启动+本地部署和启动开源项目Ragflow失败SRE模块
windows·docker·开源
致宏Rex12 小时前
Docker 实战教程(7) | 镜像管理和仓库操作
运维·docker·容器
罗技12312 小时前
不用每次都改 `easysearch.yml` 也能改启动参数 —— 用 Docker 环境变量搞定一切
docker·容器·eureka
落日漫游14 小时前
Kubernetes容器运行时:cri-docker vs containerd
docker·kubernetes
K_i1341 天前
Docker、容器、虚拟机到底是什么
docker·微服务·云原生·容器·kubernetes