【问题标题】:How can I use Artifactory as a caching proxy for my PHP composer dependencies from packagist?如何使用 Artifactory 作为我的 PHP 作曲家依赖项的缓存代理?
【发布时间】:2021-11-16 23:29:58
【问题描述】:

我想使用 Artifactory 作为我的 PHP 作曲家依赖项的缓存代理。

我已经能够手动创建一个远程存储库并将 composer 配置为使用 Artifactory 而不是 packagist。

问题是我的项目有很多依赖(因为依赖有依赖)。

如果我必须手动执行此操作,将无法使用 Artifactory。

如何从composer.json 开始创建所有依赖项(包括间接依赖项)的镜像?

【问题讨论】:

  • 您是否正在寻找一种方法来自动创建 Artifactory 存储库,也许是从命令行,同时定义它们的所有属性,包括它们代理的远程存储库?
  • 是的,这将是朝着正确方向迈出的有益一步。我可能会解析 composer.json,然后为我找到的每个依赖项调用 CLI
  • 当然。现在让我将此添加为答案。如果这是我们正在寻找的内容,请随时将其标记为有用。

标签: php composer-php artifactory


【解决方案1】:

JFrog CLI 可以帮助设置自动化来管理您的 Artifactory 存储库。您可以创建、更新和删除本地、远程和虚拟 Artifactory 存储库。 以下是您需要做的:

1.安装 JFrog CLI

https://jfrog.com/getcli/安装JFrog CLI

2。配置您的 JFrog 实例

通过运行以下命令配置 JFrog 实例的连接详细信息:

jfrog c 添加我的实例

3.创建存储库模板

运行以下命令:

jfrog rt rpt repo-conf-template.yml

此命令将使用您的存储库配置在当前目录中创建一个名为 repo-conf-template.yml 的模板文件。 这是一个交互式命令,它会提示您一系列问题。您可以选择使用变量作为问题的值。例如,当提示提供存储库密钥时,您可以提供 ${my-repo-key} 作为值。这允许在使用模板时将变量 my-repo-key 替换为任何存储库键值。这样,您可以使用完全相同的配置来创建一个新的存储库,并且每次只设置一个新的存储库密钥。

4.创建、更新或删除存储库

现在您已经准备好模板,您可以使用它来创建和更新存储库,作为自动化脚本的一部分。假设您想使用您创建的 repo-conf-template.yml 模板创建一个存储库,其中包括 ${my-repo-key} 变量对于存储库密钥。然后你应该使用 jfrog rt rc 命令如下。

jfrog rt rc repo-conf-template.yml --vars "my-repo-key=my-actual-repo-name"

请注意,您可以使用以下格式为多个变量设置值,--vars 使用以下格式:

--vars "key1=value1;key2=value2;..."

您可以类似地使用 jfrog rt ru 来使用模板更新存储库。 要删除此存储库,请按如下方式运行 jfrog rt rdel

jfrog rt rdel my-actual-repo-name

阅读有关使用 JFrog CLI here管理存储库的更多信息

【讨论】:

    【解决方案2】:

    Artifactory 中的远程存储库通常用于镜像另一个存储库/注册表,为多个包提供服务。不需要为每个依赖项(即包)设置新的远程存储库。

    由于packagist.org 中的大多数包都来自github.com,因此配置一个远程存储库来解析来自packagist 的注册表索引文件和来自github 的二进制文件就足够了。

    如果您依赖的软件包不在 github 中,您可以简单地添加一个镜像其他 git 提供程序的附加远程存储库。在这种情况下,您还应该定义一个 virtual repository 聚合所有相关存储库并使用该存储库来解决您的依赖关系。

    有关更多详细信息 - 请参阅PHP Composer Remote Repositories 的文档。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 2013-04-20
      • 2014-10-24
      • 2016-09-12
      • 2014-03-10
      • 2015-01-11
      • 2019-12-02
      • 2013-10-09
      • 1970-01-01
      相关资源
      最近更新 更多