当前位置: 首页 > 工具软件 > Satis > 使用案例 >

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

赵英资
2023-12-01

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

环境

centos 7.3
composer
gitlab
nginx

使用 安装 satis

composer create-project composer/satis --keep-vcs

配置 satis.json

{
    "name": "tuzuu",
    "homepage": "http://packages.pandamonk.com",
    "repositories": [
        { "type": "git", "url": "http://git.pandamonk.com/pandamonk/test.git" }
    ],
    "require-all": false,
    "require-dependencies": true,
    "require-dev-dependencies": true,
    "require": {
        "pandamonk/hello": "*"
    },
    "archive": {
        "directory": "dist",
        "format": "zip",
        "skip-dev": true
    },
    "config": {
        "secure-http": false
    }
}
* homepage
私有 composer 包管理的 url地址
* repositories
需要被索引的git代码仓库地址 这里引用的是 gitlab 的 地址
* require
需要被索引的包, 这里明确写明 可以减少 索引的内容
* require-all
这里如果不配置为 false 的话, 会索引全部的composer包(https://packagist.org/)

创建 索引

php bin/satis build satis.json ./web -v #-v参数可以看到被索引的包

定时更新

crontab 执行 创建索引命令

使用 docker 搭建 nginx 环境, 访问 satis 的composer 本地私有库

// 临时关闭 selinux, 否则 docker 在挂载 volume 是会有文件权限问题
setenforce 0
// 拉取 nginx 镜像
docker pull nginx
// 拷贝nginx 镜像中的 默认的 nginx 部分配置文件
docker run --name tmp-nginx-container -d nginx
docker cp tmp-nginx-container:/etc/nginx/conf.d/ /etc/nginx/conf.d/
docker rm -f tmp-nginx-container
// 修改 conf.d/default.conf 文件 的 server_name 值为 satis.json 中 homepage 的值
server_name packages.pandamonk.com;
// 开启 nginx 镜像
docker run --name nginx --restart always -p :80:80 -v /root/test/my-satis/web:/usr/share/nginx/html:ro -v /etc/nginx/conf.d/:/etc/nginx/conf.d/ -d nginx
-v /root/test/my-satis/web:/usr/share/nginx/html:ro 挂载 satis 生成的静态文件
-v /etc/nginx/conf.d/:/etc/nginx/conf.d/ nginx 的 vhost 文件目录
// 大功告成 浏览器 访问
http://packages.pandamonk.com

使用 satis 的 composer 私有包

Add this Satis repository to your composer.json
{
    "repositories": [{
        "type": "composer",
        "url": "http://packages.pandamonk.com"
    }]
}
composer require pandamonk/hello
or composer install
 类似资料: