0
0

More than 3 years have passed since last update.

composer.pharのメジャーバージョンアップのエラー対応

Last updated at Posted at 2020-11-05

phpのデプロイツールdeployerやECCUBE4の標準のDockerfile等、composerを利用する場合は、基本常にウェブから最新を取得して実行するのが推奨なため、今回2020-10-24にメジャーバージョンが1から2になったため盛大にコケる。

バージョンアップの差異に引っかからずうまくいくケースもあるが、composerの命名規則や細かい違いがあるため、大抵の場合失敗する。

対応策

deployerの場合

ローカルにcomposerがある場合は、それを利用する設定になっているため
単に1系のcomposerを配置しパスを通せば良い。

1系の最後
https://getcomposer.org/download/1.10.17/composer.phar

ECCUBE4のDockerfileの場合

ローカルにあるなしに関わらず問答無用でWEBから最新を取得している。
なので、composer.pharを配置したあとにDockerfileの一部だけ書き換える

RUN curl -sS https://getcomposer.org/installer \
| php \
&& mv composer.phar /usr/bin/composer \
&& composer config -g repos.packagist composer https://packagist.jp \
&& composer global require hirak/prestissimo \
&& chown www-data:www-data /var/www \
&& mkdir -p ${APACHE_DOCUMENT_ROOT}/var \
&& chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT} \
&& find ${APACHE_DOCUMENT_ROOT} -type d -print0 \
| xargs -0 chmod g+s \
;

RUN chmod 777 composer.phar
&& mv composer.phar /usr/bin/composer \
&& composer config -g repos.packagist composer https://packagist.jp \
&& composer global require hirak/prestissimo \
&& chown www-data:www-data /var/www \
&& mkdir -p ${APACHE_DOCUMENT_ROOT}/var \
&& chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT} \
&& find ${APACHE_DOCUMENT_ROOT} -type d -print0 \
| xargs -0 chmod g+s \
;

以上。

追伸
あとプラグインを入れて、そのプラグインがローカルなリポジトリからコンポーネントを引っ張っている場合は通常のcomposer installでコケる。
その場合以下参照
https://qiita.com/applexco/items/00831ba61936139e8b26

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0