使用 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

results matching ""

    No results matching ""