【问题标题】:failed to install composer packages in docker container无法在 docker 容器中安装作曲家包
【发布时间】:2020-06-26 05:36:44
【问题描述】:

几天以来,我无法在本地 docker 容器中安装 composer-packages。 我用composer init 创建新的composer.json 并尝试用composer require fzaninotto/faker 添加一个包
我总是收到相同的错误消息

# composer require fzaninotto/faker
Using version ^1.9 for fzaninotto/faker
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
    Failed to download fzaninotto/faker from dist: The zip extension and unzip command are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
    Now trying to download from source
  - Installing fzaninotto/faker (v1.9.1): Cloning fc10d778e4 from cache
    fc10d778e4b84d5bd315dad194661e091d307c6f is gone (history was rewritten?)

Installation failed, reverting ./composer.json to its original content.


  [RuntimeException]
  Failed to execute git checkout 'fc10d778e4b84d5bd315dad194661e091d307c6f' -- && git reset --hard 'fc10d778e4b84d5bd315dad194661e091d307c6f' --

  fatal: failed to read object fc10d778e4b84d5bd315dad194661e091d307c6f: Operation not permitted


require [--dev] [--prefer-source] [--prefer-dist] [--fixed] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...

首先我猜我的 ssh 密钥是问题,但我创建了一个新密钥并将其添加到 github 并出现相同的错误。
比我用composer clear 试一试,但问题没有解决。

问题出现在 EACH docker 容器和 EACH 作曲家包中......所以我不能成为单个包或容器的问题。

有没有人知道我可以再次使用作曲家?

【问题讨论】:

  • 输出告诉你发生了什么:fc10d778e4b84d5bd315dad194661e091d307c6f is gone (history was rewritten?)。在 packagist 中有对该提交的引用,但如果你到 Github 上该提交不在 master 中,这意味着历史被重写。您可以尝试安装 zip 扩展,这将使 composer 从 packagegist 获取。
  • @snahor 提交已经存在。我无法使用此提交签出存储库,并且工作正常。只有作曲家不会获取它,它在 EACH 包上(带有其他提交但相同的错误消息)。

标签: php git docker composer-php


【解决方案1】:

如果您使用的是 Docker 桌面 (Windows) 并且您已更新到最新版本 2.2.0.4,那么您会遇到此问题。

降级到 2.2.0.3,它应该可以再次工作(至少它对我有用)。 见:https://forums.docker.com/t/issues-after-upgrading-docker-desktop-to-2-2-0-4/90589

降级:

  • 卸载 Docker 桌面。注意:它会删除你的容器,如果你想将它们导入回来,请先保存它们
  • 转到此页面:https://docs.docker.com/docker-for-windows/release-notes/
  • 点击2.2.0.3下的下载
  • 使用安装程序文件安装 Docker Desktop
  • 启动时会要求升级到 2.2.0.4,只需说“跳过此版本”

【讨论】:

  • 谢谢。不是它有效。我从不相信更新是原因
  • 查看github.com/docker/for-win/issues/6016他们正在修复的地方
  • 2.2.0.5 说它修复了只读文件的“不允许操作”
【解决方案2】:

我没有足够的分数来评论最佳答案,但 Docker 问题刚刚关闭 (like an hour ago!),因此只需在 Windows 上更新 Docker Desktop 即可解决它。至少为我工作。现在我可以再次安装 Drupal!

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2017-08-13
    • 2014-10-12
    • 2022-08-18
    • 2020-05-25
    • 2022-06-20
    • 2021-07-02
    • 2021-03-08
    • 2014-02-26
    相关资源
    最近更新 更多