资讯专栏INFORMATION COLUMN

使用satis自建私有镜像

lscho / 2019人阅读

摘要:假设同一个包有多个开发人员则将其他人员设置为组成员,在同一台跳板机上部署项目,并且设置项目的为。这样在开发环境中通过登陆来判断权限。在跳板机上则通过添加该机器的公钥到来判断权限这样就算其他人有仓库地址也不能拉到代码,目的基本达成。

建立目的

为了不让代码公开,能够让项目基于gitlab快速自动化部署,简化单个composer.json文件配置内容

安装 使用composer
composer create-project composer/satis --keep-vcs

安装完之后与github中的目录结构一致

配置satis.json

接着在项目根目录下创建satis.json文件

{
    "name": "satis packages",
    "homepage": "http://satis.example.com",
    "repositories": [
        { "type": "git", "url": "ssh://git@gitlab.example.com/tim/test.git" }
    ],
    "require":{
        "tim/test":"dev-master"
    }
}

homepage

在satis上显示的默认私有镜像地址

repositories

需要被索引的git代码仓库地址

require

明确定义包名可以减少索引内容,s中使用require-all经过测试发现会索引全网的php包

接下来对镜像中的packages创建索引

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

使用docker

pull image

git pull composer/satis

在build目录下创建satis.json文件之后运行

docker run --rm -it -v /build:/build composer/satis

上面这条命令的作用与bin/satis命令一样,都是创建索引

自动更新

使用crontab执行创建索引命令,时间间隔看具体情况

访问web界面

配置nginx将root指向索引输出目录
访问域名之后可以看到如下界面

与gitlab一起工作

配置satis.json中看到repositories的定义是使用ssh://协议

目的在于方便管理项目成员开发以及项目部署中的权限。
假设同一个包有多个开发人员则将其他人员设置为组成员,在同一台跳板机上部署项目,并且设置项目的Visibility LevelInternal

这样在开发环境中通过登陆gitlab来判断权限。
在跳板机上则通过添加该机器的公钥到deploy keys来判断权限

这样就算其他人有仓库地址也不能拉到代码,目的基本达成。

使用私有镜像中的包建立项目

创建一个目录,再创建一个composer.json文件,依赖添加刚刚创建的包

{
    "repositories": [
        { "type": "composer", "url": "http://satis.example.com" }
    ],
    "config": {
        "secure-http": false
    },
    "require": {
          "tim/test": "dev-master"
    }
}

secure-http设置为false是因为satis默认为https

repositories是为了告诉composer镜像源不仅仅只有packagist.org,还包括了刚刚我们设置的私有镜像

这些配置可以多带带在每个composer.json文件中设置,也可以像下面这样(全局加 -g )配置

composer config secure-http false
composer config repo.packagist composer http://satis.example.com

创建完之后composer install(忽略域名于之前配置的不同,这是我本地域名,但是已经弄完了懒得改)

最后附上tim/test包的composer.json

{
    "name": "tim/test",
    "authors": [
        {
            "name": "tim",
            "email": "tim@example.com"
        }
    ],
    "require":{
        "monolog/monolog":"1.0.*"
    }
}
参考

Handling private packages

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22440.html

相关文章

  • 使用 Satis 搭建私有仓库

    摘要:此时我们就需要一个工具,能够搭建私有源,里面都是私有仓库,对内不对外。就是官方提供的建立私有源的工具。在其它项目中使用私有源只需要在项目的文件的根上添加仓库地址之后再通过或者想要的仓库就可以了。 现在我们常用 Composer 进行依赖管理。和其它语言的包管理工具一样,Composer 使用 GitHub 托管代码,可以根据配置文件管理依赖,也可以建立各种脚本,执行特定任务。总之好处很...

    gityuan 评论0 收藏0
  • 使用 Satis 搭建私有的 Composer 包仓库

    摘要:说明服务器环境代码管理平台码云文章中尽量以一个真实的情况来撰写,但是文章的仓库地址,网页地址均是不可访问的,用虚拟信息替换了真实信息。比如码云,是收费的,对于一个公司来说费用不高,但是加上以上两点原因后,所以未选择。 简述 iBrand 产品立项时是商业性质的项目,但是在搭建架构时考虑后续的通用性,因此每个模块都设计成一个 Package,作为公司内部用,因此这些包并不能提交到 pac...

    lovXin 评论0 收藏0
  • composer私有仓库搭建

    摘要:安装包添加配置文件添加类似如下内容配置文件详解仓库名字主页地址包所在地址指定获取哪些包及对应的版本,获取所有包使用,与包中中的名称相同,不同会出现问题必需要的,表示生成的压缩包存放的目录,会在时的目录中压缩包格式默认和 安装satis包 cd /home/wwwroot/ composer create-project composer/satis --stability=dev -...

    h9911 评论0 收藏0
  • 这两年多我写PHP业务代码的方式是如何进化的

    摘要:曾今谁都有过迷茫期,下面是我开始开发中,不断改变的代码组织方式。 曾今 谁都有过迷茫期,下面是我开始PHP开发中,不断改变的代码组织方式。 初期:所有代码一股脑控制器controller 曾今只是简单的理解MVC 中期:业务代码抽象一部分到模型层model 开始觉得model层是否该做点什么了 后期:业务代码控制器,模型层只写db的curd方法 复杂的业务代码使contro...

    qqlcbb 评论0 收藏0
  • 使用 satis 搭建 composer 本地仓库

    摘要:如果需要定时更新,则需要配置定时任务去定时更新设置本地仓库设置虚拟主机使用本地仓库中的包文件中添加以下拉取,即可获取本地库了如果本地仓库不存在且有网络会去网络中获取。 环境 windows nginx php composer 安装 拉取 satis 项目包,并拉取项目依赖 composer create-project composer/satis --stability=de...

    张率功 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<