
如何使用 Docker 部署 GitLab
作者 | 老夏
来源 |运维开发故事(ID:mygsdcsf)
转载请联系授权(微信ID:wanger5354)
你否曾经想托管自己的GitLab存储库以确保代码永远不会落入坏人之手?尽管在第三方云主机上托管你的存储库有很多优势(例如可用性和可靠性),但要完全控制你的存储库,这样任何人都可以在未经你批准的情况下访问它。
在Docker的帮助下,您可以做到这一点。我将向你展示它是如何完成的。它并不过分复杂,但需要许多步骤。所以,事不宜迟,让我们开始工作吧。要完成此任务,需要一个正在运行的 Ubuntu Server 实例和一个具有sudo权限的用户。Ubuntu 实例可以托管在你的服务器上,甚至可以托管在你的云托管帐户中(尽管通过第三方托管它会违背自托管存储库的目的)。
安装依赖项
我们要做的第一件事是安装所需的依赖项。登录到你的 Ubuntu 实例并使用以下命令安装所需的软件:
接下来,我们需要安装 Docker 社区版。为此,我们将添加官方 Docker GPG 密钥:
接下来,添加 Docker 存储库:
使用以下命令更新 apt:
最后,安装 Docker 社区版:
使用以下命令将您的用户添加到 docker 组:
注销并重新登录以使更改生效。到目前为止,一切都很好。让我们继续。
更改默认 SSH 端口
因为 GitLab 使用默认的 SSH 端口,所以必须更改默认的 SSH 服务器端口。否则,就会发生冲突。使用以下命令打开 SSH 配置文件:
在该文件中,查找以下行:
将该行更改为:
启用端口 22 以通过防火墙:
确保使用以下命令测试与另一个登录名的 SSH 连接:
其中 USER 是您的远程用户名,SERVER 是托管服务器的 IP 地址或域。
创建一个新的 Docker 卷
我们现在已经准备好进入 Docker 方面了。我们要做的第一件事是创建一个目录。首先,创建一个目录来存放文件:
接下来,创建一个目录来存放我们的 Docker compose 文件:
使用以下命令切换到该目录:
创建一个文件来存放环境变量:
将以下内容粘贴到该新文件中:
保存并关闭文件。
创建 Docker 撰写文件
创建一个新的文件:
在该文件中,粘贴以下内容(确保以粗体更改任何内容以适应您的环境/需要):
保存并关闭文件。
部署容器
我们现在已准备好部署容器。为此,请发出以下命令:
容器的部署需要一些时间(10 到 30 分钟之间的任何时间,取决于你的网络连接速度),此刻可以处理一些其他任务。部署完成后,需要使用以下命令访问自动生成的 root 密码:
应该会看到一长串随机字符,它们将用作你的 root 密码登录。
访问 GitLab
打开 Web 浏览器并将其指向 http://SERVER(其中 SERVER 是服务器的 IP 地址或者域名)。GitLab 登录页面(参见图 1),将在其中键入用户名 root 并粘贴您在_intial_root_password_文件中找到的密码,如上所示。如果站点没有立即出现,请给它一些时间让容器完成部署。
图 1: GitLab 登录屏幕意味着成功!
另一种部署方法
如果你发现上述部署有问题,这里有另一种方法。使用以下命令设置卷位置:
使用此部署容器(确保更改任何粗体内容以满足您的需要):
上述方法之一应该可以部署 GitLab。如果你仍然有问题,你可以将向外的 SSH 端口更改为类似 10022 的端口,这样该选项将类似于_—publish 10022:22。_ 最后,如果在部署 GitLab 时仍然遇到问题,这里有另一个选择:
现在拥有一个可以在公司内部使用的 GitLab 存储库。
