前言

(1)     存在docker

(2)     服务器可以联网(外网)

(3)     服务器内存至少4G(内存不够会出现502错误)

gitlab windows快速上手 gitlab doc_容器

1、查找GitLab镜像

docker search gitlab

2、拉取gitlab docker镜像 最新

docker pull gitlab/gitlab-ce:latest

3、运行GitLab并运行容器 

docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /usr/local/gitlab-test/etc:/etc/gitlab  \
 -v /usr/local/gitlab-test/log:/var/log/gitlab \
 -v /usr/local/gitlab-test/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab-test \
 gitlab/gitlab-ce:latest

命令解释:
-i  以交互模式运行容器,通常与 -t 同时使用命令解释:

-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d  后台运行容器,并返回容器ID

-p 9980:80  将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口

-p 9922:22  将容器内22端口映射至宿主机9922端口,这是访问ssh的端口

-v /usr/local/gitlab-test/etc:/etc/gitlab  将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab-test/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样

--restart always  容器自启动

--privileged=true  让容器获取宿主机root权限

--name gitlab-test  设置容器名称为gitlab-test

gitlab/gitlab-ce  镜像的名称,这里也可以写镜像ID

# 重点:接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问

4、进入容器内

docker exec -it gitlab-test /bin/bash

5、修改gitlab.rb (先查看下一个步骤再决定是否进行本步骤,本步骤是可以跳过的) 

# 打开文件
vi /etc/gitlab/gitlab.rb
 
# 这个文件是全注释掉了的,所以直接在首行添加如下配置
  
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 (图片上拼写错误,正确的是external_url)
external_url 'http://192.168.52.128:9980'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.52.128'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922

6、修改gitlab.yml (这一步原本不是必须的,因为gitlab.rb内配置会覆盖这个,为了防止没有成功覆盖所以我在这里进行配置,当然你也可以选择不修改gitlab.rb直接修改这里)

# 打开文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

配置一:找到gitlab标签,将其子标签如下修改

gitlab windows快速上手 gitlab doc_docker_02

# 配置二:找到gitlab_shell标签下的ssh_port,将其修改为9922

#(和gitlab.rb内gitlab_rails['gitlab_shell_ssh_port'] 保持一致)

gitlab windows快速上手 gitlab doc_git_03

7、让修改后的配置生效

gitlab-ctl reconfigure

8、重启gitlab 

gitlab-ctl restart

9、退出容器 

exit

10、新版的gitlab的root初始密码,在第一次登录的时候不能手动设置

docker exec -it gitlab bash #进入容器
gitlab-rails console -e production  #启动Rails控制台

11、获取用户,设置密码

#第一个默认为root
user = User.where(id: 1).first
#必须同时更改密码和password_confirmation才能使其正常工作
user.password = '12345678.'
user.password_confirmation = '12345678.'

12、保存

user.save!

13、退出容器

ctrl+d

14、进入docker

sudo docker exec -it gitlab /bin/bash

15、查看版本号

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

gitlab windows快速上手 gitlab doc_git_04