运维 - 实践篇(四)- 基础 Gitlab 私服环境搭建
一、搭建GitLab私服环境
1、Docker 拉取 Gitlab 镜像文件
$ docker pull gitlab/gitlab-ce
2、创建服务数据存储目录
$ mkdir -p /srv/gitlab/config
$ mkdir -p /srv/gitlab/logs
$ mkdir -p /srv/gitlab/data
3、启动容器、挂载容器卷
# 指定容器 IPAddress
$ docker run --network=code-net --ip 172.18.0.7 -d --hostname 47.111.158.6 -p 443:443 -p 80:80 -p 22:22 --name gitlab --restart=always -v /srv/gitlab/config:/etc/gitlag -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
# 查看容器状态 health: starting
$ docker container ls | grep gitlab/gitlab-ce
d788d8b66338 gitlab/gitlab-ce:latest "/assets/wrapper" 52 seconds ago Up 51 seconds (health: starting) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:22222->22/tcp gitlab
# 这里启动之后需要修改容器内 SSH 端口配置,因为改动了 SSH 的端口 22 -> 22222
$ docker cp gitlab:/etc/gitlab/gitlab.rb /srv/gitlab/config/
# 该配置文件默认全部都注释 下面的指令可以追加也可以覆盖,视情况而定
# 配置 http 协议所使用的 gitlab 访问地址,可以写域名。如果端口不写的话默认为80端口
# 配置 ssh 协议所使用的访问地址和端口
# 此端口是 docker run 时 22 端口映射的 22222 端口
$ cat > /srv/gitlab/config/gitlab.rb << EOF
external_url 'http://47.111.158.6'
gitlab_rails['gitlab_ssh_host'] = '47.111.158.6'
gitlab_rails['gitlab_shell_ssh_port'] = 22
unicorn['worker_processes'] = 2
EOF
# 重启 gitlab docker 容器
$ docker restart gitlab
4、配置管理员账号
访问地址:http://47.111.158.6/users/sign_in
容器内部修改用户信息(root用户信息)
# 进入容器内部 (先通过 docker ps -a 查看容器Id)
$ docker exec -it gitlab /bin/bash
#
$ gitlab-rails console -e production
# 查看用户管理员
$ user = User.where(username:"root").first
# 或者
$ user = User.where(id: 1).first
# 配置新密码 新密码建议 大于 8位 不然保存的时候会提示错误
$ user.password = "code-fusheng"
# 确认密码
$ user.password_confirmation = "code-fusheng"
# 保存
$ user.save!
5、注册账号
访问地址:http://47.111.158.6/users/sign_in
二、Gitlab 私服项目搭建
1、查看现有 SSH 配置信息
# Mac SSH 文件目录 /Users/[username]/.ssh
$ cd /Users/zhanghao/.ssh
#
$ ssh-keygen -t rsa -C "2561035977@qq.com"
# 提示输入当前 SSH key 输入之后会生成对应的 ***_pub & *** 公钥与私钥
Enter file in which to save the key (/Users/zhanghao/.ssh/id_rsa):
$ id_rsa_gitlab_fs
# 查看公钥 并将公钥复制配置在 gitlab 或者 github 对应的 SSH 配置
# gitlab http://localhost/-/profile/keys
$ cat id_rsa_gitlab_fs.pub
ssh-rsa *******************= 2561035977@qq.com
# 多账户 git ssh 配置
$ cat >> /Users/zhanghao/.ssh/config << EOF
Host gitlab_fs
HostName 47.111.158.6
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab_fs
User 2561035977@qq.com
EOF
2、创建测试项目
3、本地 Git 拉取项目
git clone ssh://gitlab_fusheng:22222/code-learn/gitlab-demo.git
git clone http://47.111.158.6/root/gitlab-public.git