本文共 4482 字,大约阅读时间需要 14 分钟。
英文版
docker pull gitlab/gitlab-ce
中文版
docker pull twang2218/gitlab-ce-zh
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命令查找。
(有资料显示可以通过环境变量传入容器中。可参考: )1.修改gitlab.rb
vim ./data/etc/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80external_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 创建完成后: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 /testcd /testgit initgit 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
Document Test
6.提交仓库
git add index.htmlgit 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
转载地址:http://tthwi.baihongyu.com/