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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。