Gitlab + docker + nginx部署
·
文章目录
概要
GitLab 是一个基于 web 的 Git 代码仓库管理工具,提供了完整的 CI/CD 功能和项目管理特性。用户可以通过 GitLab 托管和管理他们的软件项目,包括代码的版本控制、问题跟踪、持续集成和部署管道。GitLab 允许团队协作开发,并且支持自动化测试和部署,从而提高开发效率和软件质量;在部署过程中遇到很多坑,这里记录一下;
中文文档地址
部署前置工作
可参考我之前文档进行快速部署docker和nginx:
- 安装docker:docker快速安装
- 安装nginx: linux快速安装nginx
开始部署gitlab
1.创建一个文件夹用来存放docker-compose.yml文件
mkdir /home/app/docker
2.开始构建docker-compose.yml
vi /home/app/docker/docker-compose.yml
version: '3.6'
services:
web:
image: 'registry.gitlab.cn/omnibus/gitlab-jh:latest'
restart: always
hostname: '127.0.0.1'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://127.0.0.1:8929' // 这个IP可以修改成你的公网IP或者域名,这个不影响,后面也可以修改配置文件进行变更
gitlab_rails['gitlab_shell_ssh_port'] = 2224
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '8929:8929'
- '2224:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
提示: 我这里是使用的其他的端口,因为我目前这个服务器是代理服务器,gitlab并不在这个服务器中,80、22和443要保留给nginx进行代理
3. 执行命令开始构建镜像
docker compose up -d
4. 镜像构建完成自动启动容器

提示:等待几分钟,容器状态STATUS变更为healthy后就启动成功了
5. 获取root默认密码
cat /srv/gitlab/initial_root_password
提示:此密码会在24后删除,登录成功尽快修改密码
6. 配置nginx进行代理
location / {
proxy_pass http://127.0.0.1:8929;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_verify off;
}
7.开启80端口配置

8.输入IP或者域名登录成功

踩坑补充
- 因为采用nginx代理的方式代码地址与 external_url ‘http://127.0.0.1:8929’ 配置的地址相同,但8929端口并未开启(clone代码会报超时),由nginx80端口进行代理所以添加以下配置
vi /srv/gitlib/config/gitlab.rb
external_url 'http://*.*.*.172'
nginx['listen_port'] = 8929
- 修改配置文件后重新应用到所有配置:
docker exec -it 46fa60e3aa93 gitlab-ctl reconfigure
- 重启服务(几分钟后启动成功):
docker exec -it 46fa60e3aa93 gitlab-ctl restart
小结
提示:内存最好不小于8G,用户量少可以加一下Swap
更多推荐

所有评论(0)