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