私有化部署GitLab及使用
准备工作
- 需要准备一台服务器,大家可以在网上买,个人学习的话还是建议大家去安装一个虚拟机,去装一个Linux系统。PVE安装教程
- docker Docker安装教程
安装
# 拉取Gitlab镜像
docker pull gitlab/gitlab-ce:latestservices:
gitlab:
image: gitlab/gitlab-ce
container_name: gitlab
restart: always
privileged: true
ports:
- "9980:80"
- "9922:22"
volumes:
- ./gitlab/etc:/etc/gitlab
- ./gitlab/log:/var/log/gitlab
- ./gitlab/opt:/var/opt/gitlab
stdin_open: true
tty: true- 启动docker-compose.yml文件
docker-compose up -d- 修改配置信息
#进容器内部
docker exec -it gitlab /bin/bash
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.124.194'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 让配置生效
gitlab-ctl reconfigure- 注意先不要重启容器
/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,由于咱们在docker中运行,在gitlab上生成的http地址应该是http://192.168.124.194:9980,所以,要修改下面文件
# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: 192.168.124.194
port: 9980 # 这里改为9980
https: false#重启gitlab
gitlab-ctl restart
#退出容器
exit- 访问gitlab服务器IP:9980;第一次访问,会让修改root密码,修改后以root用户登录即可;或者修改密码
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为lhx123456
user.password='lhx123456'
# 保存
user.save!
# 退出
exit使用
创建项目
- 登录后点击Create a project
设置ssh
#1.打开本地git bash,使用如下命令生成ssh公钥和私钥对
ssh-keygen -t rsa -C 'xxx@xxx.com'
#然后一路回车(-C 参数是你的邮箱地址)
#2.然后输入命令:
cat ~/.ssh/id_rsa.pub
#3.打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框拉取项目
#回到gitlab页面点击projects->your projects
#选择一个需要克隆的项目,进入
#点击按钮复制地址
#新建一个文件夹,我在这里在我的电脑D盘下新建project文件夹
#进入projects文件夹右键选择->Git Bash Here
#设置用户名和邮箱
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
#克隆项目
git clone ssh://git@192.168.1.155:9980/coe/dotware-svr.git
#查看projects文件夹,项目已经克隆下来了提交代码到gitlab
#基于以上步骤,在克隆的项目文件夹下新增一个测试文件
#查看同步状态在项目文件夹下右键点击->Git Bash Here
git status
#可以看到红色部分有需要提交的文件
#提交代码
git add test.txt
#然后输入以下命令提交并添加提交信息
git commit -m "message"
#最后输出以下命令提交到gitlab
git push origin master
#提交完成啦
#再回到gitlab上看该项目就可以看到多了一个txt测试文件备份及加载
docker中保存镜像,在另一台电脑加载(以gitlab镜像为例):
docker save -o gitlab.tar gitlab/gitlab-ce:latest #请替换为你实际使用的gitlab镜像和标签
#将保存的镜像文件传输到另一台电脑,在另一台电脑上加载gitlab镜像
docker load -i gitlab.tar