Docker 搭建 Gitlab 服务器 (完整详细版)

Posted Touch&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 搭建 Gitlab 服务器 (完整详细版)相关的知识,希望对你有一定的参考价值。

Docker 安装 (完整详细版)

Docker 日常命令大全(完整详细版)

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

HTTPRUNNERMANAGER安装部署

二、拉取镜像文件

 

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 服务器 (完整详细版)的主要内容,如果未能解决你的问题,请参考以下文章

使用docker搭建gitlab服务器

docker搭建gitlab

docker gitlab迁移 备份 部署 搭建以及各种问题

Docker决战到底 自己动手搭建GitLab服务

docker搭建gitlab服务器(Centos7)

搭建gitlab服务器