我如何使用 Artifactory 作为来自 packagist 的 PHP composer 依赖项的缓存代理?
How can I use Artifactory as a caching proxy for my PHP composer dependencies from packagist?
我想使用 Artifactory 作为我的 PHP composer 依赖项的缓存代理。
我已经能够手动创建远程存储库并将 composer 配置为使用 Artifactory 而不是 packagist。
问题是我的项目有很多依赖(因为依赖有依赖)
如果我必须手动执行此操作,将无法使用 Artifactory。
如何创建从 composer.json
开始的所有依赖项(包括间接依赖项)的镜像?
Artifactory 中的远程存储库通常用于镜像另一个存储库/注册表,为多个包提供服务。不需要为每个依赖项(即包)设置一个新的远程存储库。
由于 packagist.org are served from github.com 中的大多数软件包,配置一个远程存储库来解析来自 packagist 的注册表索引文件和来自 github 的二进制文件应该足够了。
如果您依赖未托管在 github 中的包,您可以简单地添加一个额外的远程存储库来镜像其他 git 提供程序。在这种情况下,您还应该定义一个 virtual repository 来聚合所有相关的存储库,并使用该存储库来解决您的依赖关系。
有关详细信息 - 请参阅 PHP Composer Remote Repositories 的文档。
JFrog CLI 可以帮助设置自动化以管理您的 Artifactory 存储库。您可以创建、更新和删除本地、远程和虚拟 Artifactory 存储库。
这是您需要做的:
1.安装 JFrog CLI
安装 JFrog CLI
2。配置您的 JFrog 实例
通过运行以下命令配置 JFrog 实例的连接详细信息:
jfrog c add my-instance
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
我想使用 Artifactory 作为我的 PHP composer 依赖项的缓存代理。
我已经能够手动创建远程存储库并将 composer 配置为使用 Artifactory 而不是 packagist。
问题是我的项目有很多依赖(因为依赖有依赖)
如果我必须手动执行此操作,将无法使用 Artifactory。
如何创建从 composer.json
开始的所有依赖项(包括间接依赖项)的镜像?
Artifactory 中的远程存储库通常用于镜像另一个存储库/注册表,为多个包提供服务。不需要为每个依赖项(即包)设置一个新的远程存储库。
由于 packagist.org are served from github.com 中的大多数软件包,配置一个远程存储库来解析来自 packagist 的注册表索引文件和来自 github 的二进制文件应该足够了。
如果您依赖未托管在 github 中的包,您可以简单地添加一个额外的远程存储库来镜像其他 git 提供程序。在这种情况下,您还应该定义一个 virtual repository 来聚合所有相关的存储库,并使用该存储库来解决您的依赖关系。
有关详细信息 - 请参阅 PHP Composer Remote Repositories 的文档。
JFrog CLI 可以帮助设置自动化以管理您的 Artifactory 存储库。您可以创建、更新和删除本地、远程和虚拟 Artifactory 存储库。 这是您需要做的:
1.安装 JFrog CLI
安装 JFrog CLI2。配置您的 JFrog 实例
通过运行以下命令配置 JFrog 实例的连接详细信息:
jfrog c add my-instance
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