安装配置
使用docker-compose安装,docker-compose.yml文件如下:
version: '3'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
# restart: always
hostname: 'gitlab.gaoqing.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.gaoqing.com'
ports:
- '80:80'
- '443:443'
- '3333:22'
volumes:
- /home/gaoqing/gitlab/config:/etc/gitlab
- /home/gaoqing/gitlab/logs:/var/log/gitlab
- /home/gaoqing/gitlab/data:/var/opt/gitlab
服务起来后需要等待系统初始化,半分钟左右后才能访问
1. 修改root账号的密码
2. 注册一个账号登入
3. 配置ssh-key setting->ssh keys 把公钥填进去,对应私钥放本地.ssh目录
4. 在~/.ssh/config文件中添加:
host gitlab.gaoqing.com
user git
hostname 127.0.0.1 //部署gitlab的机器IP
Port 3333 //对应compose配置中开放的端口号
identityfile ~/.ssh/id_rsa //对应账号的私钥
配置完成后就可以拉取代码了。
deploy key 部署密钥
每个项目单独配置
进入项目->settings->repository->deploy key
添加方式和配置账号的密钥类似,把公钥放进去。注意:不能和账号密钥使用同一个。
内网穿透
一般来说gitlab库是部署在内网的机器上的,而外网正式服务器又无法访问内网机器,如何拉取代码呢?这时候要用到ssh端口转发相关知识。具体介绍看这里:
https://blog.csdn.net/a351945755/article/details/21785647
大致方法如下:
-
内网机器写一份ssh的config,连接到外网机器并进行端口转发
-
外网机器写gitlab相关配置,把git请求转发到内网
内网机器的ssh配置:
host aliyun
user root
hostname 106.14.xxx.xx
port 2222
identityFile ~/.ssh/id_rsa_self
RemoteForward 3333 127.0.0.1:3333 //主要是这句,把远端的3333端口内容转发到本地的3333端口上
外网机器的ssh配置:
host gitlab.gaoqing.com
User git
Hostname 127.0.0.1
Port 3333
IdentityFile ~/.ssh/id_rsa_deploy //使用deploy key
在内网部署gitlab的机器上通过ssh aliyun命令连接到外网机器,这样就能在外网机器上拉取内网gitlab上的代码了
gitlab还有很多其他功能,集成部署,自动化测试啥的,有待日后研究。
网友评论