Coolify logoCoolify

GitLab 集成

公共仓库

您可以直接使用公共仓库,无需进行额外设置。

  1. 在 Coolify 中创建新资源时,选择 Public repository(公共仓库)选项。
  2. 在输入框中添加您的仓库 URL,例如:https://gitlab.com/andrasbacsai/coolify-examples

注意

您只能使用 HTTPS URL。

  1. 完成!Coolify 将自动拉取您仓库的最新版本并进行部署。

私有仓库

私有仓库需要一些额外的设置步骤。

  1. Settings(设置)/ Repository(仓库)/ Deploy Keys(部署密钥)菜单中,将私钥(也称为 Deploy Keys)添加到 Coolify 和您的 GitLab 仓库。

注意

  • 您可以使用以下命令生成新的密钥对:
ssh-keygen -t rsa -b 4096 -C "deploy_key"
  • 或者,您也可以使用 Coolify 在 Keys & Tokens(密钥和令牌)菜单中为您生成新密钥。
  1. 创建新资源并选择 Private Repository (with deploy key)(私有仓库(使用部署密钥))。
  2. 在输入框中添加您的仓库 URL,例如:git@gitlab.com:andrasbacsai/coolify-examples.git

注意

您需要使用 SSH URL,即以 git@ 开头的那个。

  1. 完成!Coolify 将自动拉取您仓库的最新版本并进行部署。

公共容器注册表

您可以直接使用公共容器注册表,无需进行额外设置。

  1. 在 Coolify 中创建新资源时,选择 Docker Image(Docker 镜像)选项。
  2. 在输入框中添加您的公共容器注册表 URL 以及标签,例如:registry.gitlab.com/username/repository:latest
  3. 按下 Deploy(部署)按钮。
  4. 完成!Coolify 将自动拉取您容器注册表中的最新版本并进行部署。

私有容器注册表

私有容器注册表需要一些额外的设置步骤。

  1. 在 GitLab 仓库的 Settings(设置)/ Repository(仓库)/ Deploy Token(部署令牌)中,添加一个作用域为 read_registryDeploy Token(部署令牌)。此步骤将生成凭据 username(用户名)和 token(令牌)。
  2. 在您的 Coolify 服务器上使用该凭据登录 Docker
echo "token-xxx" | docker login registry.privategitlab.com -u gitlab+deploy-token-xxx --password-stdin
  1. 在 Coolify 中创建新资源时,选择 Docker Image(Docker 镜像)选项。
  2. 在输入框中添加您的私有容器注册表 URL 以及标签,例如:registry.privategitlab.com/username/repository:latest
  3. 按下 Deploy(部署)按钮。
  4. 完成!Coolify 将自动拉取您容器注册表中的最新版本并进行部署。

使用 Webhook 实现自动提交部署(可选)

您可以为您的 GitLab 仓库添加自定义 Webhook URL,以便在推送到仓库时触发新的部署。

注意

此设置既适用于公共仓库,也适用于私有仓库。

在您的资源中,有一个 Webhooks(Webhook)菜单。在 Manual Git Webhooks(手动 Git Webhook)部分,您可以找到需要在 GitLab 仓库中设置的 URL。

  1. GitLab Webhook Secret(GitLab Webhook 密钥)输入框中设置一个密钥。
  2. 前往 GitLab 中的您的仓库并打开 Settings(设置)/ Webhooks(Webhook)菜单。
  3. 将来自 Coolify 的 URL 添加到 URL(URL)输入框以及密钥令牌中。
  4. 选择 Push events(推送事件)选项。
  5. 完成!现在,当您推送到仓库时,GitLab 将向 Coolify 发送 Webhook 请求,从而触发新的部署。

使用 Webhook 实现合并请求部署(可选)

您可以为您的 GitLab 仓库添加自定义 Webhook URL,以便在创建新的合并请求时触发新的部署。

注意

此设置既适用于公共仓库,也适用于私有仓库。

流程与上述相同,但您需要在 Settings(设置)/ Webhooks(Webhook)菜单中选择 Merge request events(合并请求事件)选项。

On this page