搭建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;
}
}