docker 安装gitlab以及使用
一、安装及配置
-
gitlab镜像拉取
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
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