注其他:gitlab 钩子触发 jenkins自动发布:https://blog.51cto.com/sry2004/6049488
初始环境docker安装完毕。
gitlab搭建(docker版):
1、docker pull 镜像
docker pull gitlab/gitlab-ce
2、数据持久化保存
建立了目录 /opt/docker/gitlab 来保存 gitlab 容器中的数据
# 创建一个用于存放gitlab数据的目录
mkdir -p /opt/docker/gitlab
# 进入到创建的目录下
cd /opt/docker/gitlab
# 新建一个docker-compose.yml文件
vim docker-compose.yml
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
container_name: 'gitlab'
hostname: 'gitlab'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.3:8929' ####自己服务器的内网ip
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:22'
volumes:
- '/opt/docker/gitlab/config:/etc/gitlab'
- '/opt/docker/gitlab/logs:/var/log/gitlab'
- '/opt/docker/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
3、运行 gitlab
执行以下命令启动gitlab:
默认不操作。
# 注 volumes的地址 可以改为变量,方便迁移到其他地方,这样下面可以添加变量 ;比如我的地址为/opt/docker/gitlab
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
# 将下面的地址改成你存放gitlab持久化数据的地址,比如我的地址为/opt/docker/gitlab
export GITLAB_HOME=/opt/docker/gitlab
4、访问
若有安全策略需放行:8929和2224两个端口
firewall-cmd --add-port={8929,2224}/tcp --permanent
firewall-cmd --reload
访问前,先查一下gitlab的运行状态,在服务器上执行:
等待执行,启动时间可能会比较长,最终停止滚动,发现系统执行没有报错,系统正常运行。使用ctrl + c 组合键退出。
使用以下命令查看一下初始密码:
docker exec -it gitlab cat /etc/gitlab/initial_root_password
请将这串字符记录下,每个人得到的初始密码都是不一样的,根据自己的情况。在浏览器中访问http://ip:8929,将ip替换为你服务器的ip地址。
然后点击Sign in,发现已经可以正常登录了。
5、登录
5.1关闭注册功能:第一次登陆时候 会提示,我这里用不到注册功能,所以我把注册功能给关掉了。
5.2 根据图示找到password按钮,进行修改密码操作。
5.3 修改语言 可以设置为中文。
6、git相关的钩子命令:
#git命令
git rev-parse:将各种引用表示法转换为哈希值等
git rev-parse --verify --short HEAD:获取最新commit id的简短结果
git rev-parse --verify HEAD :最新的commit id 全量的结果
git rev-parse --show-cdup: 显示从当前目录后退到工作区的根的深度 如 ../
git diff-index :将树 和工作树 进行差异对比 。如
git diff-index --name-only HEAD #当前目录没有提交的会显示 。
git rev-parse --git-dir:显示版本库.git目录所在位置
git rev-parse --show-toplevel:
# 显示工作区根目录,即下载git的目录 如
# /家目录xxx/testa #pwd git目录
git rev-parse --show-prefix:所在目录相对于工作区根目录的相对目录 ,如显示: test1/
###本地提交时候,会执行脚本:
cat .git/hooks/post-commit
#!/bin/bash
git_dir=`git rev-parse --show-toplevel`
echo "git_dir: ${git_dir}"
# 注:https://zhuanlan.zhihu.com/p/521707440 git 高级钩子相关文档.
https://www.bbsmax.com/A/kPzOkqn1zx/ git 服务器安装。
其他:服务器上代码安装,记录下 未操作。
# https://www.bbsmax.com/A/kPzOkqn1zx/ git 服务器安装。
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
配置并启动GitLab
打开/etc/gitlab/gitlab.rb,
将external_url = 'http://Git.example.com',
修改为自己的IP地址:http://xxx.xx.xxx.xx:8082,
然后执行下面的命令,对GitLab进行编译并运行。
sudo gitlab-ctl reconfigure
gitlab就安装好了,默认的用户名是root(我的是root)