4.1 Gitlab的搭建与设置
环境准备
我们打算把gitlab
跟jenkins
都通过docker
的方式,安装在同一个虚拟机里。虚拟机IP:192.168.1.220
。
创建专属网络
我们跟之前一样,创建一个专属网络
docker network create cicd --driver bridge
更改虚拟机ssh端口
把虚拟机的ssh端口从22改为222(因为GIT底层也是22端口)
vim /etc/ssh/sshd_config
systemctl restart sshd
gitlab
映射文件夹创建
mkdir -p /usr/local/data/gitlab/etc
mkdir -p /usr/local/data/gitlab/log
mkdir -p /usr/local/data/gitlab/data
Docker Compose
gitlab/docker-compose.yml
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:13.1.1-ce.0'
restart: always
hostname: 'git.guaosi.com'
networks:
- cicd
container_name: gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://git.guaosi.com'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@qq.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = 'guaosi'
gitlab_rails['backup_keep_time'] = 14515200
logging['logrotate_frequency'] = "weekly"
logging['logrotate_rotate'] = 52
logging['logrotate_compress'] = "compress"
logging['logrotate_method'] = "copytruncate"
logging['logrotate_delaycompress'] = "delaycompress"
gitlab_rails['gitlab_shell_ssh_port'] = 22
# Add any other gitlab.rb configuration options
ports:
- '443:443'
- '22:22'
- '80:80'
- '9090:9090'
volumes:
- '/usr/local/data/gitlab/etc:/etc/gitlab'
- '/usr/local/data/gitlab/log:/var/log/gitlab'
- '/usr/local/data/gitlab/data:/var/opt/gitlab'
- '/root/.ssh:/root/.ssh'
networks:
cicd:
external:
name: cicd
启动
cd gitlab
docker-compose up -d
完全启动时间大约5分钟
域名设置
我们在Mac
上更改hosts
192.168.1.220 git.guaosi.com
设置
Outbound requests
我们在Mac
上登陆 git.guaosi.com
第一次会让我们初始化root
用户的密码,设置成功后进入gitlab
界面。
我们进入 git.guaosi.com/admin/application_se...
然后在 Outbound requests
中勾上
Allow requests to the local network from web hooks and services
以及
Allow requests to the local network from system hooks
然后点击保存,退出当前账号,重新注册一个自己喜欢的账号。
设置密钥
我们进入 git.guaosi.com/profile/keys
将我们Mac
的公钥填入,然后保存即可。现在我们就可以直接通过Git
命令与Gitlab
进行交互了。
我们可以创建一个projects
,然后将我们本地的account
文件夹用git
初始化后上传到我们自建的gitlab
中。
id_key的生成以及git指令这块相信大家应该都很清楚了,所以我就说一下大体流程而已。如果还不懂Git的小伙伴们,只能自行百度学习一下了噢~
如果是直接
git clone
我github
里代码的小伙伴,里面account
文件夹下是有.git
信息的,记得删除后再初始化git
噢~
仓库
对应的相关代码和部署文件,已经传至github,欢迎star。
持续交付、集成、部署:github.com/guaosi/go-cicd