基于Docker 部署gitlab-ce

2023-05-16

1. 获取Gitlab镜像

1.1 查找Gitlab镜像

# 查找Gitlab镜像
$ sudo docker search gitlab-ce
NAME                                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
gitlab/gitlab-ce                         GitLab Community Edition docker image based …   3620                 [OK]
twang2218/gitlab-ce-zh                   汉化的 GitLab 社区版 Docker Image                 256                  [OK]
beginor/gitlab-ce                        GitLab Community Edition with zh-cn             71                   [OK]
yrzr/gitlab-ce-arm64v8                   GitLab Community Edition docker image for ar…   33                   
gitlab/gitlab-ce-qa                      GitLab QA has a test suite that allows end-t…   8                    
drud/gitlab-ce                                                                           5                    
polinux/gitlab-ce                        GitLab-CE on Steroids (Extra features - see …   3                    [OK]
slpcat/gitlab-ce                         gitlab-ce最新社区版10.1.0,omnibus二进制包         3                    
marq/gitlab-ce-subgit                    A GitLab container with SubGit included.        3                    [OK]
lizhenliang/gitlab-ce-zh                                                                 2                    
computersciencehouse/gitlab-ce-oidc      GitLab CE Docker image with OpenID Connect s…   1                    [OK]
projectatomic/gitlab-centos7-atomicapp   Gitlab Atomic App                               1                    [OK]
idoall/gitlab-ce                         gitlab-ce                                       1                    [OK]
lezapedrola/gitlab-ce                                                                    0                    
oidatiftla/gitlab-ce                     Mirror of gitlab/gitlab-ce with more tags (m…   0                    
toshi0123/gitlab-ce                      gitlab-ce based on alpine linux                 0                    [OK]
visitsb/gitlab-ce                        Fixes official https://hub.docker.com/r/gitl…   0                    
sstruss/gitlab-ce-armhf                  gitlab-ce armhf image for armv7/armhf platfo…   0                    
jbuncle/gitlab-ce                                                                        0                    
visualon/gitlab-ce                       customized gitlab-ce docker image               0                    
chefplatform/gitlab-ce-kitchen           Docker image based on gitlab/gitlab-ce provi…   0                    
ragboy/gitlab-ce                         gitlab-ce 8.4.2                                 0                    
mjvdende/gitlab-ce                       gitlab-ce pimped with latest postgresql-clie…   0                    [OK]
imachineml/gitlab-ce                                                                     0                    
floydev/gitlab-ce                                                                        0                    

1.2 拉取gitlab镜像

# 拉取Gitlab镜像(通过上面的列表并且后面带OK的,我们选择最好的官方的)
$ docker pull gitlab/gitlab-ce:latest

在这里插入图片描述

1.3 查看本机镜像

$ docker images

2. 启动Gitlab容器

# 启动Gitlab容器
$ sudo docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /home/ubuntu/Env/Gitlab/etc:/etc/gitlab  \
 -v /home/ubuntu/Env/Gitlab/log:/var/log/gitlab \
 -v /home/ubuntu/Env/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/ubuntu/Env/Gitlab/etc:/etc/gitlab将容器/etc/gitlab目录挂载到宿主机/home/ubuntu/Env/Gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
–restart always容器自启动
–privileged=true让容器获取宿主机root权限
–name gitlab设置容器名称为gitlab
gitlab/gitlab-ce镜像的名称,这里也可以写镜像ID

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

3. 修改配置

# 进容器内部
$ sudo docker exec -it gitlab /bin/bash
# 修改gitlab.rb
$ vi /etc/gitlab/gitlab.rb
# 加入如下:
# 1.gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.137.100'
# 2.ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.137.100'
# 3. ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 让配置生效
$ gitlab-ctl reconfigure

在这里插入图片描述

注意不要重启,/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,由于咱们在docker中运行,在gitlab上生成的http地址应该是http://192.168.137.100:9980,所以,要修改下面文件

4. 修改http和ssh配置

# 在docker中操作,将文件中gitlab的端口(默认80)改为9980(与前面一致)
$ vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

在这里插入图片描述

重启gitlab:

$ gitlab-ctl restart

在这里插入图片描述

退出docker命令行:

$ exit

现在在浏览器输入地址http://192.168.137.100:9980/即可访问到web界面:
在这里插入图片描述
但是我们还没有可用的用户以及密码。

5. 修改root密码

第一次访问,会让修改root密码,修改后才能够进行登录以root用户登录即可。

# 进入容器内部
$ docker exec -it gitlab /bin/bash
# 进入gitlab控制台
$ gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
$ user = User.where(id:1).first
# 修改密码为:`@W908164f`
$ user.password='@W908164f'
# 保存
$ user.save!
# 退出
$ exit

在这里插入图片描述

6. 登录测试

gitlab
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Docker 部署gitlab-ce 的相关文章

随机推荐