docker下gitlab安装配置使用(完整版)
空灵之海 2024-09-30 10:37:01 阅读 55
docker 安装gitlab以及使用
一、安装及配置
gitlab镜像拉取
<code>docker pull gitlab/gitlab-ce:latest (gitlab-ce是稳定版,默认pull最新latest版本)
# 或者指定版本
# sudo docker pull gitlab/gitlab-ce:<版本号>
创建本地映射目录
在你的Ubuntu主机上,创建用于存储GitLab配置文件、日志和数据的目录:
mkdir -p /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data
运行GitLab-CE Docker容器
docker run --detach \
--hostname gitlab \
--publish 443:443 --publish 80:80 --publish 222:22 \
--name gitlab \
--restart always \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab
gitlab/gitlab-ce:latest
-d:后台运行
-p:将容器内部端口向外映射,映射的端口可根据实际修改
--name : 命令容器名称,可根据需要调整
-v: 将容器内数据文件夹或者日志,配置等文件夹挂载到宿主机指定目录
运行成功后出现一串字符
验证Gitlab-CE是否运行成功
docker ps
访问和配置gitlab-ce
配置gitlab-ce访问地址
打开浏览器,输入http://<你的Ubuntu主机IP地址>(或https://<你的Ubuntu主机IP地址>,如果启用了HTTPS的话)来访问GitLab-CE。首次访问时,你需要设置管理员密码。
如果需要,你可以通过修改/srv/gitlab/config/gitlab.rb文件来进一步配置GitLab-CE,例如更改external_url、设置SMTP邮件发送等。修改后,需要重启GitLab-CE容器以使配置生效:
vim /sev/gitlab/config/gitlab.rb (gitlab.rb文件内容默认全是注释)
#配置http协议所使用的访问地址,不加端口号默认为80,加端口号根据设置端口号添加,找到
external_url 'http://192.168.1.155'
#配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.1.155'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
#docker restart gitlab (重启gitlab容器)
配置gitlab-ce注册邮箱
首先,确保你的邮箱服务(如QQ邮箱、163邮箱等)已经开启了SMTP服务,并且你能够获取到SMTP服务的授权码。这是因为出于安全考虑,大多数邮箱服务不允许在第三方应用中使用明文密码。
配置GitLab CE的SMTP设置
接下来,需要编辑GitLab CE的配置文件(通常是/etc/gitlab/gitlab.rb),以设置SMTP相关的参数。以下是一个基于QQ邮箱的示例配置:
vim /sev/gitlab/config/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465 # 通常对于SMTPS使用465端口,对于STARTTLS使用587端
gitlab_rails['smtp_user_name'] = "your_email@qq.com" # 你的邮箱地址
gitlab_rails['smtp_password'] = "your_smtp_authorization_code" # 你的SMTP授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true # 如果使用STARTTLS,则设置为true
gitlab_rails['smtp_tls'] = true # 如果使用SMTPS(端口465),则设置为true
gitlab_rails['gitlab_email_from'] = 'your_email@qq.com' # 发件人邮箱地址
gitlab_rails['gitlab_email_display_name'] = 'GitLab CE' # 发件人显示名称
请注意,根据你的邮箱服务提供商和具体需求,上述参数可能需要进行相应的调整。
保存配置文件后,重启gitlab容器来确保配置生效
docker restart gitlab
测试SMTP配置
在GitLab CE的控制台中,你可以使用以下命令来测试SMTP配置是否成功:
docker exec -it gitlab /bin/bash
gitlab-rails console
Notify.test_email('your_test_email@example.com', 'Subject', 'Body').deliver_now
替换your_test_email@example.com、Subject和Body为你自己的测试邮箱地址、邮件主题和邮件内容。如果配置成功,你应该能在指定的测试邮箱中收到一封来自GitLab CE的测试邮件。
重置root账号密码
进入gitlab 容器中
docker exec -it gitlab /bin/bash
或者
docker exec -it <容器id> /bin/bash
设置修改root密码
要重置您的root密码,请首先使用root特权登录到服务器。使用以下命令启动Ruby on Rails控制台
#gitlab-rails console -e production
等待控制台加载完毕,有多种找到用户的方法,您可以搜索电子邮件或用户名
user = User.where(id: 1).first
现在,您可以更改密码
user.password = ‘secret_pass’
user.password_confirmation = ‘secret_pass’
重要的是,您必须同时更改密码和password_confirmation才能使其正常工作,别忘了保存更改
user.save!
exit
之后使用root就可以通过web端登陆。
二、gitlab使用
创建一个项目
第一次进入要输入新的root用户密码,设置好之后确定就行
下面我们就可以新建一个项目了,点击Create a project
创建完成后:
用户使用
下载git.exe
双击git.exe安装git(一直点下一步,直到完成)
点击电脑桌面空白地方右键看到如下两行即安装成功
登录gitlab网页
url:http://192.168.1.155
填写账号密码登录
设置ssh
<code>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克隆代码
1).回到gitlab页面点击projects->your projects
2).选择一个需要克隆的项目,进入
3).点击按钮复制地址
4).新建一个文件夹,我在这里在我的电脑D盘下新建project文件夹
5).进入projects文件夹右键选择->Git Bash Here
6).设置用户名和邮箱
#git config --global user.name "你的名字"
#git config --global user.email "你的邮箱"
7).克隆项目
#git clone ssh://git@192.168.1.155:222/coe/dotware-svr.git
8).查看projects文件夹,项目已经克隆下来了
提交代码到gitlab
1).基于以上步骤,在克隆的项目文件夹下新增一个测试文件
2).查看同步状态
在项目文件夹下右键点击->Git Bash Here
#git status
可以看到红色部分有需要提交的文件
3).提交代码
#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
参考:https://www.jianshu.com/p/080a962c35b6
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。