zoukankan      html  css  js  c++  java
  • composer私有仓库搭建之系列一:创建自己的私有仓库

    首先有自己的项目仓库,项目的composr.json配置如下

    {
      "name": "test/packag1",
      "description": "私有仓库创建测试",
      "type": "library",
      "license": "proprietary",
      "minimum-stability": "dev",
      "require": {
        "ext-curl": "*",
        "ext-redis": "*",
        "ext-fileinfo": "*",
        "ext-libxml": "*",
        "ext-simpleXml": "*",
        "ext-json": "*",
        "monolog/monolog": "^1.25",
      },
      "keywords": [
        "test,library"
      ],
      "authors": [
        {
          "name": "joshua317",
          "email": "joshua317@joshua317.com",
          "role": "Master"
        }
      ],
      "repositories": {
        "composer.joshua317": {
          "type": "composer",
          "url": "http://composer.joshua317.com"
        }
      },
      "prefer-stable": true,
      "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "secure-http": false,
        "process-timeout": 120
      },
      "require-dev": {
        "phpunit/phpunit": "^9.0"
      }
    }

    一、使用 Satis 搭建私有仓库

    使用 Composer 自带的建项目功能,这个相当于git clone+composer install+ 运行 post-install 脚本。

    私有仓库的创建很简单,直接通过使用下面命令创建就可以

    cd /data/wwwroot/

    composer create-project composer/satis --stability=dev --keep-vcs --no-secure-http

    二、建立satis.json配置文件

    上面命令完成后,进入到目录,进行satis.json文件的创建

    {
        "name": "My Repository",
        "homepage": "http://composer.joshua317.com",
        "repositories": [
        {
            "type": "vcs",
            "url": "http://gitlab.joshua317.com/test/package1.git"
        }],
        "require":
        {
    "test/package1": "dev-master"
        },
        "require-all": false,
        "archive":
        {
            "directory": "dist",
            "format": "tar",
            "skip-dev": true
        }
    }

    配置文件详解

    name:仓库名字
    homepage:主页地址
    repositories:包所在地址
    require:指定获取哪些包及对应的版本,获取所有包使用”require-all”: true,与包中composer.json中的名称相同,不同会出现问题
    
    archive的配置项:
    directory: 必需要的,表示生成的压缩包存放的目录,会在build时的目录中
    format: 压缩包格式, zip(默认)和tar
    prefix-url: 下载链接的前缀的Url,默认会从homepage中取
    skip-dev: 默认为假,是否跳过开发分支
    absolute-directory: 绝对目录
    whitelist: 白名单,只下载哪些
    blacklist: 黑名单,不下载哪些
    checksum: 可选,是否验证sha1
    

    二、生成仓库及更新仓库列表

    使用下面命令会生成一个public目录,里面有生成的所有包的信息,然后把这个目录设置到可以用域名访问的地方,比如  composer.joshua317.com

    cd /data/wwwwoot/
    php bin/satis build satis.json public/

    也可以使用下面命令行生成指定包的信息

    php bin/satis build satis.json public/ test/test1 test/test2
    

     

    三、NGINX配置

    server {
        listen  80;
        server_name composer.joshua317.com;
        index index.html index.php;
        root /home/wwwroot/satis/public;
        access_log /data/log/composer-access.log  default_access;
        error_log /data/log/composer-error.log  error;
    
        location ~ .php$ {
            include fastcgi_params;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }  
    }

    服务起来后,浏览器输入:http://composer.joshua317.com 进行访问

    四、使用私有仓库包

     在自己项目中的composer.json中添加类似如下内容

    
    
    {
        "require":
        {
            "test/package1": "*"
        }
        "config":
        {
            "secure-http": false
        }
        "repositories":
        {
            "packagist":
            {
                "type": "composer",
                "url": "http://composer.joshua317.com"
            }
        }
    }
  • 相关阅读:
    操作系统——生产者消费者
    flutter如何搭建android环境
    小程序uni-app图片预览uni.previewImage会触发onshow这个生命周期
    小程序 uni-app动态更改标题
    小程序uni-app处理input框将页面往上推动的解决办法
    去除小程序scroll-view产生的横向滚动条
    小程序生命周期详解
    h5移动端像素适配 postcss-pxtorem和amfe-flexible
    vue平铺日历组件
    组合数
  • 原文地址:https://www.cnblogs.com/joshua317/p/13111672.html
Copyright © 2011-2022 走看看