【工具安装】CentOS7中docker安装gitlab(亲测记录)

349 阅读3分钟

docker安装gitlab

近期由于想自己搭建一个gitlab的环境,把自己的代码迁移过来,于是自己动手搭建了一个gitlab仓库,正好也把搭建的过程记录一下,留下点痕迹。

话不多说,我们正式开始~

我的机器是华为云的Centos7版本,同样阿里云也是一样,或者用自己的虚拟机也是一样。

首先,确保你的机器安装了docker,docker的安装呢,可以参考菜鸟教程,很详细。 CentOS Docker 安装 | 菜鸟教程 (runoob.com)

接下来,我们进入正题:

1.首先第一步拉取镜像:

docker pull gitlab/gitlab-ce

image.png

2.查看镜像:

docker images

image.png

3.接下来安装镜像,生成容器

# 启动容器
docker run  -itd  \
  --hostname gitlab.******.cn \
  --publish 443:443 --publish 8080:80 --publish 222:22 \
  --restart always \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

这里简单解释一下,

命令含义
-i 以交互模式运行容器,通常与 -t 同时使用命令解释
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d后台运行容器,并返回容器ID
--hostname这写你的域名,或者你用ip也可以,配置gitlab也可以用子域名,在你的nginx里配置一下就可以,具体可以参考这个下面
-p 8080:80将容器内80端口映射至宿主机8080端口,这是访问gitlab的端口,如果有端口冲突8080也可以改成别的端口
-p 222:22 将容器内22端口映射至宿主机222端口,这是访问ssh的端口
-volume /srv/gitlab/config:/etc/gitlab或者用-v都可以,将容器/srv/gitlab/config目录挂载到宿主机/etc/gitlab目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
--restart always容器自启动
--privileged=true让容器获取宿主机root权限
--name gitlab设置容器名称为gitlab
gitlab/gitlab-ce镜像的名称,这里也可以写镜像ID

nginx通过不同的二级域名映射到不同端口下的应用

image.png

查看容器:

docker ps -a

image.png

这时候,容器已经安装成功了,并且启动了,接下来我们进入容器内部修改相关配置

4.进入容器内部,修改配置:

#进入容器内部
docker exec -it gitlab /bin/bash

#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
  
#加入如下配置
#gitlab访问地址,可以写域名,也可以是IP地址,我这里是域名。如果端口不写的话默认为80端口
external_url 'http://gitlab.*****.cn/'  
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = 'gitlab.*****.cn'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 222

# 保存退出

# 让配置生效
gitlab-ctl reconfigure

image.png

image.png

修改gitlab.yml文件

#修改gitlab.yml
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

#修改端口号
gitlab:
    host: gitlab.****.cn  #这里也可以写IP地址
    port: 8080 # 这里改为8080,就是你最开始运行容器的端口号
    https: false

#重启gitlab 
gitlab-ctl restart

#退出容器 
exit

image.png

此时输入域名或者你的IP进行访问:(我这里的域名)

image.png

5.配置管理员账号

此时还未配置管理员:

# 进入容器内部
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

image.png

6.重启gitlab,登录

docker resatrt gitlab

刚才配置的账号密码进行登录: 账号是:root 密码:你刚才设置的

image.png

image.png

7. 502错误

image.png 如果遇到502:

一个是可能正在启动,

一个是机器配置不足,建议机器配置最低8G内存