该内容不可查看详情 發表於 2025-12-5 10:16:04

docker部署Gitlab全过程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">docker部署Gitlab</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">第一次登录</a></li></ul><li><a href="#_label1">注意登录后并修改密码</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_1">当复制地址的时候</a></li><li><a href="#_lab2_1_2">配置ssl</a></li></ul><li><a href="#_label2">总结</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>docker部署Gitlab</h2>
<p>拉取gitlab docker镜像</p>
<div class="jb51code"><pre class="brush:bash;">docker pull gitlab/gitlab-ce:latest
</pre></div>
<div class="jb51code"><pre class="brush:bash;"> docker run -d \
-p 80:80 \
-p 9922:22 \
-p 443:443 \
-v /data/gitlab/etc:/etc/gitlab\
-v /data/gitlab/log:/var/log/gitlab \
-v /data/gitlab/opt:/var/opt/gitlab \
--privileged=true \
--name gitlab \
-v /etc/localtime:/etc/localtime:ro \
gitlab/gitlab-ce:latest
</pre></div>
<div class="jb51code"><pre class="brush:bash;">--restart always容器自启动
--privileged=true让容器获取宿主机root权限
</pre></div>
<p class="maodian"><a name="_lab2_0_0"></a></p><h3>第一次登录</h3>
<ul><li>获取GitLab默认密码</li><li>这个文件将在首次执行reconfigure后24小时自动删除</li></ul>
<div class="jb51code"><pre class="brush:bash;"> cat /data/gitlab/etc/initial_root_password | grep Password
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464792.png" /></p>
<p class="maodian"><a name="_label1"></a></p><h2>注意登录后并修改密码</h2>
<p>编辑 vim /data/gitlab/etc/gitlab.rb</p>
<div class="jb51code"><pre class="brush:bash;"># 这个文件是全注释掉了的,所以直接在首行添加如下配置

# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.8.9'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.8.9'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
</pre></div>
<p>重新加载配置,重启生效</p>
<div class="jb51code"><pre class="brush:bash;">docker execgitlab gitlab-ctl reconfigure &amp;&amp;docker execgitlab gitlab-ctl restart
</pre></div>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>当复制地址的时候</h3>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464797.png" /></p>
<p>创建SSH Key在你的电脑上生成密钥</p>
<div class="jb51code"><pre class="brush:bash;">ssh-keygen -t rsa -C "你的邮箱地址"
</pre></div>
<p>然后一路回车,使用默认值即可</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464792.png" /></p>
<p>打开公钥 id_rsa.pub复制搞gitlab上面去</p>
<div class="jb51code"><pre class="brush:bash;">cat ~/.ssh/id_rsa.pub
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464730.png" /></p>
<p>登陆GitLab,将鼠标放在我的头像下拉框,&ldquo;SSH Keys&rdquo;页面,然后,点&ldquo;New SSH Key&rdquo;,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464771.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464736.png" /></p>
<p>测试一下ssh方式拉取代码</p>
<div class="jb51code"><pre class="brush:bash;">git clone 地址
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120509464719.png" /></p>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>配置ssl</h3>
<p>生成证书</p>
<div class="jb51code"><pre class="brush:bash;">openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=192.168.8.9/O=192.168.8.9"
</pre></div>
<p>修改3处</p>
<div class="jb51code"><pre class="brush:bash;">external_url 'https://192.168.8.9'
#将HTTP请求重定向到HTTPS
默认情况下,当您指定以“https”开头的外部\u url时,NGINX将不再侦听端口80上未加密的HTTP流量。如果要将所有HTTP通信重定向到HTTPS,可以使用重定向到HTTPS设置。
nginx['redirect_http_to_https'] = true

nginx['ssl_certificate'] = "/etc/gitlab/ssl/tls.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/tls.key"
</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
頁: [1]
查看完整版本: docker部署Gitlab全过程