GitLab是一款开放源代码的DevOps平台,用于实现从项目规划、源代码管理、CI/CD到监控和安全性的全方位集成。GitLab主要用于版本控制、协同开发、持续集成/持续部署 (CI/CD)、自动化测试、项目管理、以及安全性管理。在诸多功能中,版本控制是GitLab最为核心的功能之一,它允许多名开发人员在统一项目中进行并行开发,通过Git进行代码的合并、分支、提交和版本回退,有效提高软件开发效率和团队协作能力
GitLab Runner 是一个开源项目,用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 结合使用,GitLab CI 是 GitLab 随附的用于协调作业的开源持续集成服务。使用场景跟Jenkins类似。
准备工作
- 外挂目录创建
mkdir -p /opt/package/test/config /opt/package/test/logs /opt/package/test/data
- /opt/package/gitlab/config 挂载主机配置目录
- /opt/package/gitlab/logs 挂载主机日志目录
- /opt/package/gitlab/data 挂载主机数据目录
- docker-compose.yml创建
services:
gitlab:
image: gitlab/gitlab-ce:latest #默认使用最新版,也可以指定版本号
container_name: gitlab
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.56.10:8090'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
nginx['listen_port'] = 80
nginx['listen_https'] = false
postgresql['shared_buffers'] = "256MB"
gitlab_rails['gitlab_shell_ssh_port'] = 8022
GITLAB_ROOT_PASSWORD: 'gitlab2024#' #登录账号密码,省的部署后到文件再去查找
ports:
- "8090:80" # 将主机端口80映射到容器端口80
- "8022:22" # 将主机端口2222映射到容器端口22
volumes:
- /opt/package/gitlab/config:/etc/gitlab # 挂载主机配置目录到容器
- /opt/package/gitlab/logs:/var/log/gitlab # 挂载主机日志目录到容器
- /opt/package/gitlab/data:/var/opt/gitlab # 挂载主机数据目录到容器
networks:
- gitlab-network
networks:
gitlab-network:
driver: bridge
- external_url 登录的URL地址,记得要带上端口号,端口号要跟映射的端口号一样
- volumes 数据卷挂载,这里的目录就是前面创建的目录,且要有写权限
- 整体目录结构如下
./gitlab
├── config
├── data
├── docker-compose.yml
└── logs
部署执行
- 在gitlab目录下执行如下命令
docker-compose up -d
等一会,查看容器状态,等为healthy时就可以访问了
基本设置
- 中文设置
- 新建项目
新建一个验证项目,需要包含dockerfile、.gitlab-ci.yml,后面做CD、CD会用到这两个文件