Docker安装运行Gitlab(非默认端口教程)

Docker安装运行Gitlab (非默认端口教程)

一、下载gitlab的docker镜像

英文版

docker pull gitlab/gitlab-ce

中文版

docker pull twang2218/gitlab-ce-zh
二、运行gitlab镜像
docker run \
 -d \
 -p 99:22 \
 -p 6443:443 \
 -p 6080:80 \
 --name gitlab \
 --hostname 10.95.11.119 \
 --restart unless-stopped \
 -v $PWD/gitlab/data/etc:/etc/gitlab \
 -v $PWD/gitlab/data/log:/var/log/gitlab \
 -v $PWD/gitlab/data/data:/var/opt/gitlab \
 gitlab/gitlab-ce

已经测试过环境变量的启动方式,如果使用此方式启动,可以跳过第三步(修改配置),如果不使用此方式,必须完成第三步。

docker run \
 -d \
 -p 99:22 \
 -p 6443:443 \
 -p 6080:80 \
 --name gitlab \
 --hostname 10.95.11.119 \
 --restart unless-stopped \
 -v $PWD/data/etc:/etc/gitlab \
 -v $PWD/data/log:/var/log/gitlab \
 -v $PWD/data/data:/var/opt/gitlab \
 -v /etc/localtime:/etc/localtime:ro \
 --env GITLAB_OMNIBUS_CONFIG="external_url='http://10.95.11.119:6080'; gitlab_rails['gitlab_ssh_host'] = '10.95.11.119'; gitlab_rails['gitlab_shell_ssh_port'] = 99" \
 --env TZ=Asia/Shanghai \
 twang2218/gitlab-ce-zh

三、修改配置

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb和gitlab.yml,这两个配置文件都已经被映射在宿主机下,可使用find命令查找。
(有资料显示可以通过环境变量传入容器中。可参考: Gitlab官方文档)

1.修改gitlab.rb

vim ./data/etc/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://10.95.11.119:6080'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.95.11.119'
# 此端口是run时22端口映射的99端口
gitlab_rails['gitlab_shell_ssh_port'] = 99

:wq #保存配置文件并退出

修改完可以查看确认一下。

grep -v ^# ./data/etc/gitlab.rb | grep -v ^$

输出如下:

external_url 'http://10.95.11.119:6080'
gitlab_rails['gitlab_ssh_host'] = '10.95.11.119'
gitlab_rails['gitlab_shell_ssh_port'] = 99

2.修改gitlab.yml

vim ./data/data/gitlab-rails/etc/gitlab.yml
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 10.95.11.119 
    port: 6080
    https: false

    # Uncommment this line below if your ssh host is different from HTTP/HTTPS one
    # (you'd obviously need to replace ssh.host_example.com with your own host).
    # Otherwise, ssh host will be set to the `host:` value above
    ssh_host: 10.95.11.119
    
:wq #保存配置文件并退出

3.重启gitlab容器

docker exec -it gitlab gitlab-ctl restart
四、创建项目

示例:
1.启动 GitLab 后,第一次访问时,会要求设置 root 用户的密码,密码不得小于8位。设置好后,就可以登录使用了。
在这里插入图片描述
2.下面我们就可以新建一个项目了,点击Create a project
在这里插入图片描述
创建完成后:
在这里插入图片描述

五、设置ssh

1.打开本地终端,使用如下命令生成ssh公钥和私钥对

ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa

查看

cat ~/.ssh/id_rsa.pub

如下所示:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7VfTn/kdLsYJM9fdaJUrYtVcEZIsM/IQ56sFgHbevANAhf7GUpJXr3k0PFf4tidTig0QFzkybC+GnROyiu04XJ5xpWtUNQx9DqHSJ3mvT3zEOeuXhXpN8RcGp6navCLzN2CnymsPkHIo/lbKfKSFf5Kk2AdMMHpfsVFxoT6yYaMC+jOhDf3xJEuPpRMHdyqirU5Rclhb8Nzmi2IfrLSjZNMVLHsEkW2mVyVX7DT3LT+q5MbM/gohRU4+DRFc/wOgEWwKFmoGt7YMi+TnGI5gCakJe7CGFSr6wmMfl2ZaiWc9IeytJcPSJmV361mMdGH4RB9QV9jp0aYZfUDeZfTa7 root@adot-All-Series

2.打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框
在这里插入图片描述
在这里插入图片描述

六、克隆代码测试

1.选择一个需要克隆的项目,进入
在这里插入图片描述
2.创建一个目录用于测试

mkdir /test
cd /test
git init
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

3.首先使用HTTP方式(gitlab直接复制,无需修改)

 git clone http://10.95.11.119:6080/root/airport.git

输出如下为成功:

Cloning into 'airport'...
Username for 'http://10.95.11.119:6080': 用户名
Password for 'http://root@10.95.11.119:6080': 密码
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (6/6), 550 bytes | 550.00 KiB/s, done.

4.SSH方式
如果是默认22端口,gitlab直接复制,无需修改:

git clone git@10.95.11.119:root/airport.git

修改端口后,需要明确使用 ssh:// 的 URL 方式。

git clone ssh://git@10.95.11.119:99/root/airport.git

加入了ssh:// 和 端口99

输出如下为成功:

Cloning into 'airport'...
The authenticity of host '[10.95.11.119]:99 ([10.95.11.119]:99)' can't be established.
ECDSA key fingerprint is SHA256:3El3VgnzdXoCAtuW5aALWVlV8nik2YTkES5TOTkVwjE.
Are you sure you want to continue connecting (yes/no)? yes  #第一次连接会出现
Warning: Permanently added '[10.95.11.119]:99' (ECDSA) to the list of known hosts.
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.

5.创建一个index.html用来模拟开发写代码并提交

vim index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<h1>Test</h1> 
</body>
</html>

6.提交仓库

git add index.html
git commit -m "add index.html"
git push origin master

以下输出为成功:

Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 382 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.1.121:root/test.git
   5b44e15..1cdcea5  master -> master

7.验证查看gitlab上是否有提交的index.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值