步骤1 docker安装gitlab
1.gitlab镜像拉取
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本 $ docker pull gitlab/gitlab-ce
2.运行gitlab镜像
$ docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce # -d:后台运行 # -p:将容器内部端口向外映射 # --name:命名容器名称 # -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
运行成功后出现一串字符串
步骤2 宿主机nginx配置域名映射gitlab
server {
listen 80;
server_name gitlab.****.cn;
location / {
proxy_pass http://git###;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream git### {
server 127.0.0.1:1980;
}
步骤3 进入gitlab容器内,修改默认账户root密码(注意密码一定要包含大小写字母和特殊字符)
一. 进入docker的 gitlab 容器中
1. 查看所有容器
docker ps
2. 进入gitlab 容器中
docker exec -it gitlab(容器名字) bash
二. 修改密码
1、要重置您的root密码,请首先使用root特权登录到服务器。使用以下命令启动Ruby on Rails控制台
gitlab-rails console -e production
2、等待控制台加载完毕,有多种找到用户的方法,您可以搜索电子邮件或用户名
user = User.where(id: 1).first
3、现在,您可以更改密码
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
4、重要的是,您必须同时更改密码和password_confirmation才能使其正常工作,别忘了保存更改
user.save!
quit 退出命令行
exit 退出容器
步骤4 通过宿主机映射目录修改gitlab配置文件 config文件夹中的gitlab.rb文件
# gitlab.rb文件内容默认全是注释 $ vim /home/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80 external_url 'http://192.168.199.231' # 配置ssh协议所使用的访问地址和端口 gitlab_rails['gitlab_ssh_host'] = '192.168.199.231' gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口 :wq #保存配置文件并退出
文件中的ip地址也可以为域名
步骤5 docker 重启 gitlab
docker restart gitlab
步骤6 通过root登录到gitlab,新建项目
步骤7 在Windows上安装git客户端
下载git.exe
步骤8 在Windows上找到.ssh文件夹,添加到gitlab中
已生成过ssh:则在我的电脑--->C盘--->用户--->你自己的用户路径下,可以看到一个新的.ssh文件夹,在这个文件夹中有一对密钥文件,使用notepad++等工具打开id_rsa.pub,复制其中的内容,千万不要改变其中的内容。
如果没有生成ssh:则进行如下操作,先生成秘钥对。
1.打开本地git bash,使用如下命令生成ssh公钥和私钥对
$ ssh-keygen -t rsa -C 'xxx@xxx.com'
然后一路回车(-C 参数是你的邮箱地址),生成密匙
2.然后输入命令:
# ~表示用户目录,比如我的windows就是C:\Users\Administrator,并复制其中的内容 $ cat ~/.ssh/id_rsa.pub
最后找到gitlab上面设置ssh键的地方,复制上述内容。
步骤9 通过git客户端,拉取新项目到本地
1.新建空白文件夹,并进入
2.鼠标右键找到git bash here 并进入
3.输入命令 git clone ssh://git@gitlab.*****.cn:5552/root/test-dotnet.git