介绍

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私有库相关推荐

  1. satis 搭建 Composer 私有库的方法

    安装 satis 命令行下执行: php create-project composer/satis --stability=dev --keep-vcs . 配置 创建 satis.json 文件, ...

  2. Satis搭建composer私有库(自定义下载目录)

    在我们的日常php开发中需要使用大量的第三方包和类库, 怎么管理是一个问题, 我们用的Yii2框架, 但是并没有把composer用起来, 由于最近更换为docker部署项目, 于是想起来用compo ...

  3. 创建Cocoapods私有库

    本文以自己在公司做的一个手势密码私有库GesturePasswordKit为例说明. 1.在gitlab(或者github,我这里使用的例子是在gitlab上)上创建git仓库 (确保授权正确,避免后 ...

  4. iOS组件化(二):创建远程私有库

    由于github的私有库需要收费,因此我们使用码云(gitee)的私有库,免费. 1.创建WJSpec远程私有仓库,用来存放podspec文件. 1.1 在码云中创建私有项目: 1.2 添加你的私有R ...

  5. 使用 satis 结合 gitlab 搭建 composer 私有包仓库

    使用 satis 结合 gitlab 搭建 composer 私有包仓库 环境 centos 7.3 composer gitlab nginx 使用 安装 satis composer create ...

  6. Cocoapods 私有库

    Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库, 以及将自己的项目中的公共组件.(cocoapods的安装请自行百度) 1.创建自己的私有sp ...

  7. 前端人员如何在linux服务器上搭建npm私有库

    为什么要搭建npm私有库? 为了方便下载时,公共包走npmjs,私有包走内部服务器. npm包下载的速度较慢,搭建npm私有库之后,会先操作私有库中是否有缓存,有缓存直接走缓存,而不用重新再去请求一遍 ...

  8. 组件化开发-002-Cocoapods远程私有库使用(Private Repo)

    创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的Spec Repo. 创建Pod所需要的项目工程文件,并且有可访问的项目版本控制地址. 创建Pod所对应的podspec文件. ...

  9. CocoaPods公有库和私有库制作

    认识公有库和私有库 公有库:开源自己封装的库供别人使用,且往cocoaPods的官方Repo仓库(即CocoaPods Master Repo)中新增自己库的索引,该库索引是以*.podspec.js ...

最新文章

  1. 【J2SE】语言基础
  2. boost::multiprecision::float128用法的测试程序
  3. Neutron 如何支持多种 network provider - 每天5分钟玩转 OpenStack(70)
  4. .Net Core3.0 配置Configuration
  5. 阿里重磅开源Blink:为什么我们等了这么久?
  6. php 导出excel 特殊字符,PHPEXCEL导出,存在特殊字符遇到的问题
  7. cmd cd命令_常用的一些dos命令分享
  8. 安卓中资源ID的问题
  9. SQL Server调优系列进阶篇(查询优化器的运行方式)
  10. windows server 2012 开始菜单
  11. 最详细 Spring Boot 入门(-)
  12. Genius ACM(倍增+归并排序)
  13. Python初学16——程序设计方法学
  14. dwg格式的计算机图,例举电脑dwg文件怎么打开
  15. Spark学习总结(一)
  16. 云时代数据容灾的正确姿势
  17. 将Excel文件导入到数据库中
  18. 1211: 【入门】数字走向IV
  19. FLANN C++ 使用
  20. Android开发的单词本APP项目介绍及源码(大作业)

热门文章

  1. CCS 快捷键查看和文字大小调整快捷键
  2. QTP如何打开浏览器,并进入网站,关闭浏览器
  3. 在Excel表格中如何使一个很长的表,打印时每页都能打出表头
  4. RuntimeError: CUDA error: out of memory
  5. zeus调度工具启动慢(zeus_action数据量太大)
  6. LTE学习-PDSCH资源映射
  7. Linux 内核交互图
  8. 单片机c语言 一小时,1小时单片机c语言快速入门1.docx
  9. Google T恤,公司里散发的文化气氛
  10. 最新网易云盾滑块验证码破解,代码可以直接用