为了账号安全,请及时绑定邮箱和手机立即绑定

作曲家缓存不适用于 bitbucket 管道构建

作曲家缓存不适用于 bitbucket 管道构建

PHP
ibeautiful 2022-07-09 09:49:11
我在我的 bitbucket 管道中得到了这个:pipelines:  branches:    develop:    - step:        caches:          - composer        name: unit tests - Delivery         image: totersapp/laravel-docker:phpredis        script:        - echo "memory_limit=512M" > /usr/local/etc/php/conf.d/memory-limit-php.ini        - ln -f -s .env.pipelines .env        - composer install         services:        - postgres        - redis每次运行它都会下载相同的文件(即使是第二次运行)..任何想法为什么?这是作曲家安装的日志:+ composer installLoading composer repositories with package informationInstalling dependencies (including require-dev) from lock filePackage operations: 199 installs, 0 updates, 0 removals  - Installing kylekatarnls/update-helper (1.2.0): Downloading (connecting...)Downloading (0%)           Downloading (100%)  - Installing ocramius/package-versions (1.4.2): Downloading (connecting...)Downloading (0%)           Downloading (30%)Downloading (35%)Downloading (65%)Downloading (95%)Downloading (100%)  - Installing symfony/polyfill-ctype (v1.13.1): Downloading (connecting...)Downloading (0%)           Downloading (100%)更新:无法覆盖默认值基于这个答案,我尝试了这个:- step:    caches:      - composer    image: totersapp/laravel-docker:phpredis    script:    - composer install ..definitions:caches:  composer: /composer/cache我的问题是我正在尝试使用自定义缓存目录(在本例中/composer/cache为在这个例子中,bitbucket 教程是用 bundle 做的: - bundle install --path vendor/bundle换句话说,我不能运行这样的东西:- composer install --cache-directory /composer/cache
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

根据Bitbucket 论坛上的一个问题,如果您使用的 docker 映像将下载的文件放在不寻常的位置,就会发生这种情况。根据有关缓存的文档,通常缓存的目录是~/.composer/cache,而图像的 docker 文件使用/composer.


请尝试使用以下配置。它包含一个自定义缓存(需要自定义名称!),将自定义的 composer 文件夹放入缓存中:


pipelines:

  branches:

    develop:

    - step:

        caches:

          - composer-custom


definitions:

  caches:

    composer-custom: /composer/cache

正如您在https://bitbucket.org/haasenico/composer-cache/addon/pipelines/home#!/results/4上看到的那样,使用了缓存并且似乎适用于我的简短示例


查看完整回答
反对 回复 2022-07-09
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

为了完成这项工作,我基本上遵循了 Nico Haase 的回答,但我还必须执行以下操作:

  • "cache-dir": "~/.cache/composer"从我的 composer.json中删除

  • 确保保存的缓存文件与 composer.json 中发生的任何事情同步。您不能要求 composer.json 从具有不相关内容的缓存文件中加载依赖项。为此,我只是删除了所有缓存文件并重新开始,这次成功了!

//img1.sycdn.imooc.com//62c8dec100014bf808460335.jpg

查看完整回答
反对 回复 2022-07-09
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信