当前位置: 首页 > 工具软件 > Satis > 使用案例 >

使用 satis 搭建一个私有的 Composer 包仓库·精简实用版本

曾皓
2023-12-01

使用私有包的过程中遇到不少小问题,但是网上找的千篇一律基本上没有一个完整可以能将它用起来的,这里的用起来是实际项目中使用,基于个人这边使用踩坑过程做了个精简版的总结供大家参考……

 

说明:私有包管理了解到的有 Toran Proxy 和satis

 

1、下载私有包安装程序

composer create-project composer/satis --stability=dev --keep-vcs

利用composer拉取satis代码到本地,拉取下来后面要配置站点

 

2、增加私有包配置文件

增加json格式的文件到项目目录下,具体目录可以自己定义,在编译的过程中需要用到指向到该文件,配置文件如下

{
    "name": "XXXX包管理",   //这里就是标题,也就类似于站点的title一样,描述文本废话
    "homepage": "http://package.xxx.cn", //包的主页,拉取时引用的站点
    "repositories": [
        { "type": "vcs", "url": "git@gitlab.xxx.cn:tg_source.git" },   //每个包需要对应的一个Git地址,至于一个Git地址是否可以
        { "type": "vcs", "url": "git@gitlab.xxx.cn:php-composer/auxclass.git" },
        { "type": "vcs", "url": "git@gitlab.xxx.cn:php-composer/filter.git" },
    ],
    "require": {
        "promoting": "*",//*表示任意分支、标签
        "auxclass/auxclass": "dev-master",  //指定分支,dev-master就是master分支
        "gaozhongqiang/filter": "1.1",      //指定标签
    },
    "archive": {        //缓存Git仓库代码到服务器,这样不用每次composer update从Git仓库拉取,常用参数下面三个,还有其它参数没尝试
        "directory": "dist",        //生成的压缩包存放的目录
        "format": "tar",            //压缩包格式, zip(默认) tar
        "prefix-url": "http://package.xxx.cn"    //下载链接的前缀的Url,默认会从homepage中取,其它的没尝试过
    }
}

 

3、编译拉取Git库代码到私有包

切换到项目目录下,执行下面命令 satis.json就上面的案例json保存的文件名称,public编译生成的文件及包目录,下面web站点需要解析到这目录,名称都可以自定义

php bin/satis build satis.json public/

Git提交代码后这部门没有自动执行,所以需要每次提交代码后手动执行上面这条命令,或者通过定时任务来执行也可以,在服务器上增加定时任务执行更新【我这边是用定时任务来执行】,关于提交代码后自动同步是否可行这方案还没有研究

 

4、配置私有包站点

这里就是将站点解析到上面编译的目录,案例是是public目录

 

5、使用私有包

composer.json 项目目录中引用注意事项

{
    //引用资源站点,这部分可以在项目中配置也可以在全局配置,在实际使用中可能涉及公网包+私有包同时使用,所以这里需要配置多个载入资源站点
    "repositories": [
        {
            "type": "composer",
            "url": "http://package.xxxx.cn"
        },
        {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    ],
    "require": {
        "auxclass/auxclass": "dev-master",
        "alibabacloud/sdk": "^1.7"
    },
    "config": {
        //是否使用安全链接下载,如果为true则只能载入https的,默认是true
        "secure-http": false
    }
}

 

 

 

 

 

 

 类似资料: