使用satis创建Composer私有库
介绍
Satis 是一个静态的 composer 资源库生成器。它像是一个超轻量级的、基于静态文件的 packagist 版本。你给它一个包含 composer.json 的存储库,定义好 VCS 和 资源库。它会获取所有你列出的包,并打印 packages.json 文件,作为 composer 类型的资源库。
目的
为了不让代码公开,能够让项目基于gitlab快速自动化部署,简化单个composer.json文件配置内容
前提
- 创建一个Composer包并托管到任意的VCS仓库等,如:Git、SVN等,可以参考:
https://getcomposer.org/doc/05-repositories.md
http://docs.phpcomposer.com/02-libraries.html
https://github.com/zyj10/satis_demo
第一种方法:使用Composer搭建
- 1、安装satis
composer create-project composer/satis my-satis --stability=dev --keep-vcs
- 2、编写配置代码
cd my-satis
vim satis.json // 配置文件需要手动创建
// 配置文件内容
{"name": "My Repository","homepage": "http://domain.com/my-satis/public/","repositories": [{"type": "vcs", "url": "https://github.com/xxx/satis_demo.git","options": {"ssh2": {"username": "xxx","pubkey_file": "/root/.ssh/id_rsa.pub","privkey_file": "/root/.ssh/id_rsa"}}}],"require":{"satis_demo/helloworld":"*"},"archive":{"directory":"dist","format":"tar","prefix-url":"http://domain.com/my-satis/public/","skip-dev":true}"require-dependencies": true
}
// 配置文件说明
name:仓库的名字,可以随便定义
homepage:仓库建立之后的的主页地址
repositories:指定去哪获取包(使用composer 自动加载项目的地址)
require:具体的包的名称,后面的版本号实际就是git里的tag 。也可以直接使用 require-all:true 的配置获取全部option:使用options参数来指定服务器的连接选项。
保护私有存储库,可以使用客户端证书通过SSH或SSL进行托管archive:下载远端项目到本地存储,会自动生成tar包保存在dist里,可以加快后续composer的速度directory: 表示生成的压缩包存放的目录,会在我们build时的目录中format: 压缩包格式, zip(默认) tarprefix-url: 下载链接的前缀的Url,默认会从homepage中取skip-dev: 默认为假,是否跳过开发分支absolute-directory 可选的,存放dist文件的本地绝对目录,而不是output-dir/directorywhitelist 可选的,如果设置为一些包名的列表,则只会下载这些包的文件blacklist 可选的,如果设置为一些包名的列表,则不会下载这些包的文件checksum 可选的,默认是true,设置为false时,satis不会检测dist文件的sha1 checksum值require-dependencies:添加依赖
- 3、生成仓库目录
在项目根目录下执行如下命令,将会生成静态的仓库目录public/。添加–no-interaction选项,使build命令使用公钥进行授权验证,而不是交互式的询问用户名密码。
php bin/satis build satis.json public/
- 4、Web站点搭建
使用 apache/nginx 或 php -S 命令创建 WEB 站点,文档根目录指向 satis/public 目录。
- 5、使用私有仓库
在项目中的composer.json中添加如下
"repositories":[{"type":"composer","url":"http://domain.com/my-satis/public/"}],"config": {"secure-http": false},"require":{"satis_demo/helloworld":"*"}repositories是为了告诉composer镜像源不仅仅只有packagist.org,还包括了刚刚我们设置的私有镜像
secure-http设置为false是因为satis默认为https然后执行composer install 或者 composer update
- 6、删除仓库目录
php bin/satis purge satis.json public/
第二种方法:使用docker搭建
- 拉镜像
docker pull composer/satis
- 运行镜像
docker run --rm -it -v /build:/build composer/satis
使用satis创建Composer私有库相关推荐
- satis 搭建 Composer 私有库的方法
安装 satis 命令行下执行: php create-project composer/satis --stability=dev --keep-vcs . 配置 创建 satis.json 文件, ...
- Satis搭建composer私有库(自定义下载目录)
在我们的日常php开发中需要使用大量的第三方包和类库, 怎么管理是一个问题, 我们用的Yii2框架, 但是并没有把composer用起来, 由于最近更换为docker部署项目, 于是想起来用compo ...
- 创建Cocoapods私有库
本文以自己在公司做的一个手势密码私有库GesturePasswordKit为例说明. 1.在gitlab(或者github,我这里使用的例子是在gitlab上)上创建git仓库 (确保授权正确,避免后 ...
- iOS组件化(二):创建远程私有库
由于github的私有库需要收费,因此我们使用码云(gitee)的私有库,免费. 1.创建WJSpec远程私有仓库,用来存放podspec文件. 1.1 在码云中创建私有项目: 1.2 添加你的私有R ...
- 使用 satis 结合 gitlab 搭建 composer 私有包仓库
使用 satis 结合 gitlab 搭建 composer 私有包仓库 环境 centos 7.3 composer gitlab nginx 使用 安装 satis composer create ...
- Cocoapods 私有库
Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库, 以及将自己的项目中的公共组件.(cocoapods的安装请自行百度) 1.创建自己的私有sp ...
- 前端人员如何在linux服务器上搭建npm私有库
为什么要搭建npm私有库? 为了方便下载时,公共包走npmjs,私有包走内部服务器. npm包下载的速度较慢,搭建npm私有库之后,会先操作私有库中是否有缓存,有缓存直接走缓存,而不用重新再去请求一遍 ...
- 组件化开发-002-Cocoapods远程私有库使用(Private Repo)
创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的Spec Repo. 创建Pod所需要的项目工程文件,并且有可访问的项目版本控制地址. 创建Pod所对应的podspec文件. ...
- CocoaPods公有库和私有库制作
认识公有库和私有库 公有库:开源自己封装的库供别人使用,且往cocoaPods的官方Repo仓库(即CocoaPods Master Repo)中新增自己库的索引,该库索引是以*.podspec.js ...
最新文章
- 【J2SE】语言基础
- boost::multiprecision::float128用法的测试程序
- Neutron 如何支持多种 network provider - 每天5分钟玩转 OpenStack(70)
- .Net Core3.0 配置Configuration
- 阿里重磅开源Blink:为什么我们等了这么久?
- php 导出excel 特殊字符,PHPEXCEL导出,存在特殊字符遇到的问题
- cmd cd命令_常用的一些dos命令分享
- 安卓中资源ID的问题
- SQL Server调优系列进阶篇(查询优化器的运行方式)
- windows server 2012 开始菜单
- 最详细 Spring Boot 入门(-)
- Genius ACM(倍增+归并排序)
- Python初学16——程序设计方法学
- dwg格式的计算机图,例举电脑dwg文件怎么打开
- Spark学习总结(一)
- 云时代数据容灾的正确姿势
- 将Excel文件导入到数据库中
- 1211: 【入门】数字走向IV
- FLANN C++ 使用
- Android开发的单词本APP项目介绍及源码(大作业)