Docker 搭建 Gitlab 服务器 (完整详细版)
Posted Touch&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 搭建 Gitlab 服务器 (完整详细版)相关的知识,希望对你有一定的参考价值。
1、Gitlab镜像
# 查找Gitlab镜像
docker search gitlab
# 拉取Gitlab镜像
docker pull gitlab/gitlab-ce:latest
2、启动Gitlab容器
# 启动容器
docker run \\
-itd \\
-p 9980:80 \\
-p 9922:22 \\
-v /home/gitlab/etc:/etc/gitlab \\
-v /home/gitlab/log:/var/log/gitlab \\
-v /home/gitlab/opt:/var/opt/gitlab \\
--restart always \\
--privileged=true \\
--name gitlab \\
gitlab/gitlab-ce
命令 | 描述 |
---|---|
-i | 以交互模式运行容器,通常与 -t 同时使用命令解释 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 |
-d | 后台运行容器,并返回容器ID |
-p 9980:80 | 将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口 |
-p 9922:22 | 将容器内22端口映射至宿主机9922端口,这是访问ssh的端口 |
-v /home/gitlab/etc:/etc/gitlab | 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab-test/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样 |
--restart always | 容器自启动 |
--privileged=true | 让容器获取宿主机root权限 |
--name gitlab | 设置容器名称为gitlab |
gitlab/gitlab-ce | 镜像的名称,这里也可以写镜像ID |
接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问
3、修改配置
#进容器内部
docker exec -it gitlab /bin/bash
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.124.194'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 让配置生效
gitlab-ctl reconfigure
### 注意不要重启,/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,由于咱们在docker中运行,在gitlab上生成的http地址应该是http://192.168.124.194:9980,所以,要修改下面文件
# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: 192.168.124.194
port: 9980 # 这里改为9980
https: false
#重启gitlab
gitlab-ctl restart
#退出容器
exit
4、浏览器访问
路径访问:http://192.168.124.194:9980/
# 机器配置要大于4g,否则很容易启动不了,报502
# 第一次访问,会让修改root密码
# 修改后以root用户登录即可
5、 修改root密码
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为lhx123456
user.password='lhx123456'
# 保存
user.save!
# 退出
exit
6、Gitlab操作
创建分组,创建项目
至此,Docker搭建Gitlab服务器完成!!!
docker搭建gitlab服务器(Centos7)
系统环境:CentOS Linux release 7.6.1810 (Core)
git版本:gitlab/gitlab-ce
一、安装和启动docker
二、拉取镜像文件
docker images #查看镜像文件,没拉取之前是没有任何镜像的
docker search gitlab #搜索镜像
docker pull docker.io/gitlab/gitlab-ce #下载镜像,下载完成后
docker images #查看镜像文件
三、运行gitlab容器
通过docker容器来运行一个gitlab服务器
docker run --name=\'gitlab-ce\' -d -p 10022:22 -p 80:80 --restart always --volume /opt/gitlab/config:/etc/gitlab --volume /opt/gitlab/logs:/var/log/gitlab --volume /opt/gitlab/data:/var/opt/gitlab/ gitlab/gitlab-ce
注释:
--name="nginx-lb": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID;
-p: 指定映射端口号,本文是将ssh的22端口映射为10022端口,web访问的80端口映射为80端口
-volume: 用来指定挂载目录,将config配置目录、data数据目录、logs日志目录挂载到宿主机上,以后备份方便
最后就是下载的容器名称
docker ps #查看运行的容器
四、配置gitlab服务器的访问地址
当运行gitlab服务器后,会在映射目录/opt/gitlab/config/目录下生成一个配置文件gitlab.rb
编辑gitlab.rb文件
vi /opt/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址
external_url \'http://192.168.3.33\'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails[\'gitlab_ssh_host\'] = \'192.168.3.33\'
gitlab_rails[\'gitlab_shell_ssh_port\'] = 10022
配置邮箱
以腾讯企业邮箱为例
gitlab_rails[\'smtp_user_name\'] = "XXXXXXXXX@QQ.com"腾讯企业邮箱的账号 gitlab_rails[\'smtp_password\'] = "******"
腾讯企业邮箱的密码
gitlab_rails[\'gitlab_email_from\'] = \'
XXXXXXXXX@QQ.com
\'
腾讯企业邮箱的账号
修改gitlab.rb配置文件之后,重启容器。
# 进入容器 docker exec -it gitlab-ce bash # 重启gitlab gitlab-ctl reconfigure
通过命令行测试邮件是否发送成功(也可以不测)
gitlab-rails console
irb(main):003:0> Notify.test_email(\'XXXXXXXXX@qq.com\', \'Message Subject\', \'Message Body\').deliver_now
五、web访问验证
访问http://192.168.3.33
初始页面是设置密码(初始用户名:root),设置完成后root/密码登录
参考:https://www.cnblogs.com/JeremyWYL/p/8694978.html
以上是关于Docker 搭建 Gitlab 服务器 (完整详细版)的主要内容,如果未能解决你的问题,请参考以下文章