Composer 私有仓库搭建

Satis 原理:通过配置文件生成相关库的元数据提供给composer,先通过git 下载 satis 代码库,创建一个 json 配置文件如下示例
复制代码
{
    "name": "longxiangam/repository",                  // Satis 生成的仓库的"名称",显示在 packages.json 中,通常是"我的私有仓库"这种描述性名字
    "homepage": "http://composer.test",                // Satis 生成的静态仓库首页 URL(浏览器访问这个地址能看到 packages.json 和搜索界面)

    "repositories": [                                  // 指定要扫描/镜像的源仓库(可以是 git、vcs、path 等类型)
        {
            "type": "git",
            "url": "https://github.com/longxiangam/dingtalk.git"
        }
    ],

    "require-all": false,                              // 关键字段:false → 不镜像"repositories"里所有包的所有版本
                                                       // 如果 true → 会镜像 repositories 里所有包的所有 commit/branch/tag 版本(非常多,适合全镜像场景)

    "require": {                                       // 关键字段:显式指定要镜像哪些包(Composer 的 require 语法)
        "mingyoung/dingtalk": "*"                      // 只镜像这个包的所有版本(* 表示任意版本,包括所有 tag/branch)
    },

    "require-dependencies": false,                     // 是否自动镜像"require"里包的依赖(dependencies)
                                                       // false → 不镜像依赖,只镜像 mingyoung/dingtalk 本身
                                                       // true → 会递归镜像它的依赖(如它依赖 guzzlehttp/guzzle,则也会镜像 guzzle)

    "require-dev-dependencies": false                  // 是否镜像 dev-dependencies(require-dev 里的包,如测试工具 phpunit)
                                                       // 通常设为 false,除非你想在私有仓库里也提供测试依赖
}

124747a2-8e29-4c04-99b1-209eb8a629cf

再通过命令构建出用于web发布的静态文件,命令如下, 最后两个指定配置与输出目录,构建出dist 后用nginx 发布成一个服务能够访问即可

复制代码
php bin/satis build satis.json dist

在composer.json 中配置私有库

复制代码
{
"repositories": [
        {
            "type": "composer",
            "url": "http://composer.test"   
        }
    ]

}

提示 如下时

复制代码
Your configuration does not allow connections to http://composer.test/packages.json. See https://getcomposer.org/doc/ 06-config.md#secure-http for details.

配置 secure-http 为false

复制代码
composer config secure-http false

如果在 docker 中使用composer 要注意 配置的私有库是否能正常访问

相关推荐
优橙教育8 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
郭萌69611 小时前
多商户平台的优惠券,真正的设计对象是「适用范围」而不是券模板
php
额额额对了11 小时前
嵌入式 Linux 启动程序文件
开发语言·嵌入式硬件·php
v:ychya201813 小时前
独立站外贸建站公司怎么选?建站就要建营销型网站
前端·php
梅菲塔亚13 小时前
华为云从入门到实战
开发语言·华为云·php
要吃这碗饭13 小时前
AI 智能体如何通过 auth.md 注册 Bright Data 账号
数据库·人工智能·php
霸道流氓气质13 小时前
幂等性与 Upsert:防止重复操作产生副作用的技术
开发语言·php
qq_5434478215 小时前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
ZHOUPUYU15 小时前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php
ZHOUPUYU16 小时前
PHP 8.2 的核心高级特性,包括只读类、类型系统增强
android·性能优化·php