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