搭建composer内网代码仓库
拉取 composer/satis 镜像
docker pull composer/satis
登录后复制
配置 composer
该步骤可跳过
目录结构
├── auth.json ├── cache │ ├── files │ ├── repo │ └── vcs ├── composer.json └── config.json
登录后复制
composer.json
{ }
登录后复制
config.json
{ "config": { "secure-http": false, "optimize-autoloader": false, "preferred-install": "dist", "sort-packages": true, "platform": { } }, "repositories": { "packagist": { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" } } }
登录后复制
构建模块扩展
目录结构
├── config.json ├── public │ ├── dist │ │ ├── bpc │ │ └── zhanghuizong │ ├── include │ │ └── all$f3811758e4611a4dfc1a96f4d1c06da09cdbe199.json │ ├── index.html │ └── packages.json └── satis.sh
登录后复制
config.json
{ "name": "composer_satis_test", "homepage": "http://local.satis.com", "repositories": [ { "type": "git", "name": "zhanghuizong/composer_satis_test", "url": "https://gitee.com/zhanghuizong/composer_satis_test.git" } ], "require": { "zhanghuizong/composer_satis_test": "*" }, "archive": { "directory": "dist", "format": "tar", "skip-dev": true, "prefix-url": "http://local.satis.com" } }
登录后复制
关键词 | 描述 |
---|---|
repositories | 指定去哪获取包 |
require | 指定获取哪些包,如果想获取所有包,使用require-all: true |
archive.directory | output-dir 即使build的输出目录 |
archive.format | 可选,默认:zip, 支持两种压缩格式:zip,tar。build时采用的压缩格式 |
archive.skip-dev | 可选,默认情况下为false,启用时(true)satis不会为分支机构创建下载 |
archive.prefix-url | 可选的下载位置,主页(来自satis.json),默认情况下是目录 |
官网说明:https://docs.phpcomposer.com/articles/handling-private-packages-with-satis.html
GitHub代码:https://github.com/composer/satis
shell 脚本
satis.sh
#!/usr/bin/env bash docker run --rm --init -it -v "$(pwd)"/config.json:/satis.json:ro \ -v "$(pwd)"/public/:/build \ -v /mnt/d/workspaces/docker-config/composer/:/composer \ composer/satis build /satis.json /build "$@"
登录后复制
增加快捷访问
编辑文件:vi ~/.bashrc
alias satis='docker run --rm --init -it -v "$(pwd)"/config.json:/satis.json:ro -v "$(pwd)"/public/:/build -v /mnt/d/workspaces/docker-config/composer/:/composer composer/satis build /satis.json /build'
登录后复制
用法
# 构建所有代码仓库模块 sh satis.sh # 安装指定模块 sh satis.sh zhanghuizong/composer_satis_test
登录后复制
注意
指定模块安装,repositories 节点中必须配置 name 字段,同时与 require 节点配置对应上
nginx 配置
server { listen 80; server_name local.satis.com; root "/data/httpd/docker-config/composer_satis/test/public/"; location / { index index.php index.html; } location ~ \.php(.*)$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }
登录后复制