系统版本:Centos7.2
实例主机IP:192.168.12.235
一、构建GitLab环境
1、拉取镜像
#docker pull docker.io/gitlab/gitlab-ce
2、定义本地存储路径
#GITLAB_HOME=/docker/data/gitlab
3、拉取容器
docker run -d --hostname gitlab \
-p 8443:443 \
-p 80:80 \
-p 2222:22 \
--name gitlab \
--restart always \
-v $GITLAB_HOME/config:/etc/gitlab \
-v $GITLAB_HOME/logs:/var/log/gitlab \
-v $GITLAB_HOME/data:/var/opt/gitlab \
docker.io/gitlab/gitlab-ce
-------------------------------------------------------分割线--------------------------------------------------------
4、配置GitLab容器
#docker exec -t -i gitlab vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "XXXXX@163.com"
gitlab_rails['smtp_password'] = "XXXXX"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'XXXXX@163.com'
user['git_user_email'] = "XXXXX@163.com"
注意以上的hqh546020152@163.com代表用户名,即邮箱地址;
而smtp_password不是邮箱的登陆密码而是网易邮箱的客户端授权密码,
再网易邮箱web页面的设置-POP3/SMTP/IMAP-客户端授权密码查看,如下图。
------------------------------------------------------------分割线---------------------------------------------------------------
5、重启gitlab
#docker restart gitlab
------------------------------------------------------------分割线---------------------------------------------------------------
6、登录gitlab
curl http://192.168.12.235
点击"Register",进行账号注册。(首次访问时将需要设置管理员密码)
7、创建新项目
Visibility Level为设置项目的访问权限。(鉴于安全性和保密性、一般选择Private)
Private (私人)
Project access must be granted explicitly to each user. (项目必须被授予明确每个用户的访问。)
Internal (内部)
The project can be accessed by any logged in user. (该项目由任何登录用户可以访问。)
Public (公共)
The project can be accessed without any authentication.(可以访问这个项目没有任何身份验证。)
到此就完成了GitLab环境的搭建和项目的创建。
-------------------------------------------------------分割线--------------------------------------------------------
二、设置其他Linux服务器可访问GitLab,并进行代码的上传、下载。(下列设置基于gitlab项目访问权限为Private)
1、配置宿主机秘钥可登录git服务器
#ssh-keygen -t rsa -C "注册账号所用的邮箱" 在Linux服务器上生产秘钥对
示例: #ssh-keygen -t rsa -C "hqh546020152@163.com" 生成秘钥对
#cat id_rsa.pub 查看秘钥对的公钥,并上次到GitLab
------------------------------------------------------------分割线---------------------------------------------------------------
2、在Linux服务器上上登录Gitlab
ssh -T git@192.168.12.235 -p 2222
提示:
Welcome to GitLab, huangqh! 则说明配置成功,可正常访问GitLab服务器
Permission denied (publickey). 则说明配置异常,可能为秘钥对匹配不上
------------------------------------------------------------分割线---------------------------------------------------------------
3、官方使用教程 (使用以下教程前提为完成了第6步骤):
Git global setup #Git全局设置
#git config --global user.name "huangqh"
#git config --global user.email "hqh546020152@163.com"
Create a new repository #创建一个新的存储库
#git clone ssh://git@192.168.12.236:2222/hqh546020152/test.git #远程将版本库cp到本地
#cd test
#touch README.md
#git add README.md #将文件提交到暂存区
#git commit -m "add README" #将在暂存区中的文件推送修改到本地库
#git push -u origin master #将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数直接使用git push。
查看GitLab管理页面上该项目的文件信息:
备注:
1、上传完在GitLab管理网页上如能看到文件,则说明配置正常。能正常上传、下载。
2、在Jenjins+GitLab构建的环境中,命令#git push -u origin master(将本地库推送到origin主机中)将可触发钩子(webhook),Jenkins接受到之后将执行一系列自定义的Job。
------------------------------------------------------------分割线---------------------------------------------------------------
Existing folder #现有的文件夹进行操作(上传下载)
cd existing_folder
git init
git clone ssh://git@192.168.12.236:2222/hqh546020152/test_ci_cd.git
git add .
git commit -m "Initial commit"
git push -u origin master
------------------------------------------------------------分割线---------------------------------------------------------------
Existing Git repository #现有的Git存储库进行操作(上传下载)
cd existing_repo
git remote add origin git@192.168.12.236:hqh546020152/test_ci_cd.git
git push -u origin --all
git push -u origin --tags