GitLab
GitLab是用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
gitlab依赖redis和postgresql
docker pull sameersbn/redis
docker pull sameersbn/postgresql
docker pull gitlab/gitlab-ce:latest
docker run --name postgresql -d --privileged=true -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' -e 'DB_EXTENSION=pg_trgm' -v /home/root/opt/postgresql/data:/var/lib/postgresql sameersbn/postgresql
本地与容器映射的路径:-v /home/root/opt/redis/data:/var/lib/redis
docker run --name redis -d --privileged=true -v /home/root/opt/redis/data:/var/lib/redis sameersbn/redis
docker run --name gitlab -d --link postgresql:postgresql --link redis:redis --hostname 192.168.171.126 -p 10022:22 -p 8899:80 -e 'GITLAB_PORT=8899' -e 'GITLAB_SSH_PORT=10022' -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_HOST=192.168.171.126' -e 'SMTP_AUTHENTICATION=login' -v /home/root/opt/gitlab/data:/home/git/data gitlab/gitlab-ce
1)访问地址:http://192.168.171.126:8899
初次访问,需要等待一段时间,gitlab容器启动和初始化较慢;启动成功后,如下图所示;
如果访问时,报错"Whoops, GitLab is taking too much time to respond.",首先检查是否系统资源不足,如内存不足;资源充足下,是可以正常访问的。
2)设置root用户的新密码
密码:Aa123456(密码要有8位,包含大小写,否则可能设置失败,gitlab用户密码限制:Minimum password length (number of characters))
3)使用root用户名登录
登录账户名:root
密码:Aa123456
docker start postgresql
docker start redis
docker start gitlab
假设使用自己的qq邮箱给新注册的用户发送注册成功邮件,需要先开启qq邮箱账户的POP3/SMTP服务;
如果没配置,会导致新用户接收不到注册邮件,不能完成设置密码,新用户无法登录使用;
1)先开启QQ邮箱的POP3/SMTP服务
QQ邮箱-->设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击开启POP3/SMTP服务,弹出如下提示,按照提示去发送短信;
短信发送成功后,点击“我已发送”,显示如下截图:保存授权码信息,后续配置到gitlab配置文件中;
2)修改gitlab的配置文件:/etc/gitlab/gitlab.rb
进入docker容器
docker exec -it gitlab /bin/bash
修改配置文件
vi /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "******@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '******@qq.com'
在gitlab容器内执行如下命令,让配置生效
gitlab-ctl reconfigure
退出gitlab容器,执行命令重启gitlab容器
docker restart gitlab
1)gitlab启动成功后,访问http://192.168.171.126:8899
使用root/Aa123456登录
点击扳手,新建用户(邮箱一定要输入有效的邮箱,否则新用户接收不到注册成功的邮件,无法重置账户密码,就无法登录gitlab);
新用户新建成功后,新用户会收到如下邮件,点击click here去重置用户密码,重置成功后,即可访问gitlab
如果邮件中点击click here打不开页面,是因为自己搭建的gitlab的默认端口已经修改了,只要在访问地址后面加上端口号8899,即可访问;
1)先下载和安装Git
下载地址:https://git-scm.com/downloads
本文使用Windows版本:2.31.1
点击Git-2.31.1-64-bit.exe,进行安装;
2)在Git Bash窗口输入命令,并一路回车,生成密钥
ssh-keygen -t rsa -C "[email protected]"
3)用记事本打开公钥,并复制
公钥目录:C:\Users\用户名\.ssh\id_rsa.pub
4)添加公钥
登录GitLab网站,右上角头像 -> Preferences -> SSH Keys中,添加复制的文本。添加成功后,如下图:
Projects-->Create blank project
按照提示,在本地执行以下命令,设置提交代码的用户名和邮箱地址
Git global setup:
git config --global user.name "test"
git config --global user.email "[email protected]"
Create a new repository或者Push an existing folder:可以创建一个新的空代码仓库,然后将本地代码提交到该代码仓库上;也可以直接将本地的项目git初始化后,再推到gitlab服务器的方式来创建一个代码仓库;
这里使用的连接方式是HTTP,没有使用SSH,是因为在push的时候,会默认使用当前系统用户作为用户名来连接gitlab服务器(本文创建的gitlab新用户是test,系统登录用户是XXX,是不一致的),如果gitlab上的登录用户名和本地用户名不一致,输入密码后,会登录失败,导致无法操作远程代码库;
Create a new repository执行如下命令,创建一个空的代码仓库;
git clone http://192.168.171.126:8899/test/shopping.git
cd shopping
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder执行如下命令,将本地项目推送到gitlab服务器的方式来创建一个代码仓库;
cd existing_folder
git init
git remote add origin http://192.168.171.126:8899/test/shopping.git
git add .
git commit -m "Initial commit"
git push -u origin master
实际本地命令操作截图:
代码仓库创建成功后截图: