无法更改权限或删除/root/.composer目录

时间:2018-04-23 19:52:20

标签: docker composer-php

以下是该方案。我有一个安装了Composer的PHP Docker,然后我尝试使用其他存储库中的composer包并进行作曲家更新。我收到以下错误:

  

无法创建缓存目录/root/.composer/cache/repo/https---packagist.org/,或者目录不可写。继续进行无缓存

我知道/root/.composer目录有问题。 我试图更改权限并删除它,但我不能:

Here is the screenshot

基本上,我对“/root/.composer”无能为力。 如何更改权限或删除此文件夹?

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。问题是安装Composer的方法。

此序列将导致上述错误:

  1. Dockerfile
  2. RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" RUN php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" RUN php composer-setup.php --filename=composer RUN php -r "unlink('composer-setup.php');" RUN mv composer.phar /usr/local/bin/composer

    1. 运行docker-compose
    2. docker-compose up -d

      <强>解决方案:

      1. Dockerfile
      2. 请勿从Dockerfile安装Composer

        1. 运行docker-compose
        2. docker-compose up -d

          1. 在容器内 - 安装composer
          2. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php --filename=composer php -r "unlink('composer-setup.php');" mv composer.phar /usr/local/bin/composer