1. 安装部署
1.1下载镜像
docker pull gitlab/gitlab-ce
1.2 运行GitLab容器
docker run --detach \ --publish 8443:443 \ --publish 8480:80 \ --publish 2222:22 \ --name gitlab \ gitlab/gitlab-ce:latest
1.3 拷贝配置文件
docker cp gitlab:/etc/gitlab/ /opt/gitlab/config/
1.4 修改gitlab配置
vim /opt/gitlab/config/gitlab.rb
1.修改邮箱配置:
### Email Settings gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'xxx@163.com' gitlab_rails['gitlab_email_display_name'] = 'zlt' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.163.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "xxx@163.com" gitlab_rails['smtp_password'] = "客户端授权密码" gitlab_rails['smtp_domain'] = "smtp.163.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true
2.设置外部url
external_url 'http://192.168.28.134:8480'
3.如果ssh端口不是22需要修改端口配置
gitlab_rails['gitlab_shell_ssh_port'] = 2222
1.5 创建启动文件
vim start.sh
#!/bin/bash GITLAB_DIR=/opt/gitlab docker stop gitlab docker rm gitlab docker run -d \ -p 8443:443 -p 8480:8480 -p 2222:22 \ --name gitlab \ -v ${GITLAB_DIR}/config:/etc/gitlab \ -v ${GITLAB_DIR}/logs:/var/log/gitlab \ -v ${GITLAB_DIR}/data:/var/opt/gitlab \ --privileged=true \ gitlab/gitlab-ce:latest
修改HOST_NAME为自己喜欢的名字
GITLAB_DIR为挂载目录要修改为自己的目录
重新启动容器
sh start.sh
2. 免密访问
在gitlab
里面添加了ssh key
之后,以后本地pull/push就不需要登录了
2.1 获取本地客户端机器的公钥
1.先看看是不是已经有了,如果有内容就直接copy贴过去
cat ~/.ssh/id_rsa.pub
2.如果上一步没有这个文件我们就创建一个,运行下面命令生成(邮箱改成自己的),一路回车就好了
ssh-keygen -t rsa -C "youremail@example.com" cat ~/.ssh/id_rsa.pub
3.复制公钥内容
2.2 添加ssh key
1.打开ssh key页面Settings -> SSH Keys
:
2.将上面第一步复制的公钥内容粘贴到里面点击Add key
3. webhook配置
- webhoo是一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式。
- 一般是需要通过git的某些行为触发jenkins构建使用
- 如果只需要手动构建的话可以忽略webhook
3.1 配置触发
1.打开webhoo
页面项目详情页面
-> Settings
->Integrations
:
2.URL
为jenkins
的job
构建地址加token
参数
3.jenkins
的token
配置如下图
4.Trigger
为触发的行为,默认是Push
操作
5.增加webhook
6.可以通过test
按钮测试触发器
3.2 webhook报错 Requests to the local network are not allowed
原因是gitlab 10.6 版本以后为了安全,不允许向本地网络发送webhook请求,如果想向本地网络发送webhook请求,则需要使用管理员帐号登录,默认管理员帐号是admin@example.com,密码就是你gitlab搭建好之后第一次输入的密码,登录之后, 点击Configure Gitlab ,如下图所示:
即可进入Admin area,在Admin area中,在settings标签下面,找到OutBound Request,勾选上Allow requests to the local network from hooks and services ,保存更改即可解决问题: