GitLab安装和配置(Docker)
Posted nikeylee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab安装和配置(Docker)相关的知识,希望对你有一定的参考价值。
GitLab
-
GitLab是用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
一、Docker下安装GitLab
1、拉取gitlab、redis、postgresql的docker镜像
gitlab依赖redis和postgresql
docker pull sameersbn/redis
docker pull sameersbn/postgresql
docker pull gitlab/gitlab-ce:latest
2、创建postgresql容器
- 数据库用户名DB_USER:gitlab
- 数据库密码DB_PASS:password
- 本地与容器映射的路径:-v /home/root/opt/postgresql/data:/var/lib/postgresql
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
3、创建redis容器
本地与容器映射的路径:-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
4、创建gitlab容器
- 指定主机地址 --hostname:192.168.171.126
- 本机与容器的端口映射:-p 10022:22 -p 8899:80
- 修改环境变量的取值:
- 端口号:-e 'GITLAB_PORT=8899' -e 'GITLAB_SSH_PORT=10022'
- 主机地址:-e 'GITLAB_HOST=192.168.171.126'
- 本地与容器映射的路径:-v /home/root/opt/gitlab/data:/home/git/data gitlab/gitlab-ce
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
5、浏览器访问
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
6、重启虚机后,再次启动gitlab命令
docker start postgresql
docker start redis
docker start gitlab
二、创建和配置GitLab新用户
假设使用自己的qq邮箱给新注册的用户发送注册成功邮件,需要先开启qq邮箱账户的POP3/SMTP服务;
如果没配置,会导致新用户接收不到注册邮件,不能完成设置密码,新用户无法登录使用;
1、配置GitLab的邮件发送
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
- smtp_user_name:修改为QQ邮箱的账号
- smtp_password:修改为配置的授权码
- gitlab_email_from:修改为QQ邮箱的账号
- 其他配置保持不变
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
2、创建GitLab新用户
1)gitlab启动成功后,访问http://192.168.171.126:8899
使用root/Aa123456登录
点击扳手🔧,新建用户(邮箱一定要输入有效的邮箱,否则新用户接收不到注册成功的邮件,无法重置账户密码,就无法登录gitlab);
新用户新建成功后,新用户会收到如下邮件,点击click here去重置用户密码,重置成功后,即可访问gitlab
如果邮件中点击click here打不开页面,是因为自己搭建的gitlab的默认端口已经修改了,只要在访问地址后面加上端口号8899,即可访问;
3、配置新用户的SSH Keys
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 "XXXX@qq.com"
3)用记事本打开公钥,并复制
公钥目录:C:\\Users\\用户名\\.ssh\\id_rsa.pub
4)添加公钥
登录GitLab网站,右上角头像 -> Preferences -> SSH Keys中,添加复制的文本。添加成功后,如下图:
三、新建GitLab代码仓库
Projects-->Create blank project
按照提示,在本地执行以下命令,设置提交代码的用户名和邮箱地址
Git global setup:
git config --global user.name "test"
git config --global user.email "4XXXXXX0@qq.com"
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
实际本地命令操作截图:
代码仓库创建成功后截图:
以上是关于GitLab安装和配置(Docker)的主要内容,如果未能解决你的问题,请参考以下文章
Python3 - Docker 安装部署Gitlab代码托管教程
Python3 - Docker 安装部署Gitlab代码托管教程