Satis 是一个静态的 composer 资源库生成器。它像是一个超轻量级的、基于静态文件的 packagist 版本。你给它一个包含 composer.json 的存储库,定义好 VCS 和 资源库。它会获取所有你列出的包,并打印 packages.json 文件,作为 composer 类型的资源库。
为了不让代码公开,能够让项目基于gitlab快速自动化部署,简化单个composer.json文件配置内容
composer create-project composer/satis my-satis --stability=dev --keep-vcs
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(默认) tar
prefix-url: 下载链接的前缀的Url,默认会从homepage中取
skip-dev: 默认为假,是否跳过开发分支
absolute-directory 可选的,存放dist文件的本地绝对目录,而不是output-dir/directory
whitelist 可选的,如果设置为一些包名的列表,则只会下载这些包的文件
blacklist 可选的,如果设置为一些包名的列表,则不会下载这些包的文件
checksum 可选的,默认是true,设置为false时,satis不会检测dist文件的sha1 checksum值
require-dependencies:添加依赖
在项目根目录下执行如下命令,将会生成静态的仓库目录public/。添加–no-interaction选项,使build命令使用公钥进行授权验证,而不是交互式的询问用户名密码。
php bin/satis build satis.json public/
使用 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
php bin/satis purge satis.json public/
docker pull composer/satis
docker run --rm -it -v /build:/build composer/satis