Docker搭建内网 composer satis 代码仓库

Posted zhanghuizong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker搭建内网 composer satis 代码仓库相关的知识,希望对你有一定的参考价值。

搭建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, 支持两种压缩格式:ziptar。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;
        }
}

技术图片

以上是关于Docker搭建内网 composer satis 代码仓库的主要内容,如果未能解决你的问题,请参考以下文章

satis 搭建 Composer 私有库的方法

Docker环境下使用docker-compose一键式搭建RocketMQ(4.5.0版本)集群及其管理工具(外网版)

docker-compose创建的网段与内网冲突时的解决方法

[svc]rocket.chat内网聊天服务器搭建(类似slack)

Composer Satis Repository 似乎指的是源 URL 而不是 dist URL

我可以从我自己的 Composer Satis 安装中同步或镜像来自 packagist.org 的依赖项吗?