gitlab搭建-docker

时间:2023-02-10 17:58:00

注其他: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:

docker-compose up -d
默认不操作。
# 注 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的运行状态,在服务器上执行:

docker logs -f 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)