phpのパッケージ管理ツール composerでrequireコマンドを実行した時に、killed
となってしまったので対処法を残しておきます。
ちなみに環境はlaradockerを使っています。
下記、エラーメッセージです。
docker_workspace
composer require league/flysystem-aws-s3-v3 ~1.0
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed
原因
OSでメモリが不足していたため、自動でプロセスをキルしてしまっていました。
対処法1:composer install で入れる
docker_workspace
cat composer.json | grep "パッケージ名" # パッケージが表示されるか確認、なければ追記
rm composer.lock # パッケージのバージョン管理ファイルを削除
composer install # パッケージの実体をダウンロード
composer show -i | grep "パッケージ名" # パッケージがダウンロードされたか確認
対処法2:仮想マシン、php.iniのメモリを増やす
php.iniのメモリ設定
php -i | grep php.ini # php.iniの場所を確認
sudo vim /etc/php.ini # php.iniを編集
ローカル環境なので無制限に設定しておきます。
あとで元に戻しておきましょう。
php.ini
; memory_limit = 128M
memory_limit = -1
仮想マシンのメモリ設定 for Vagrant
vim Vagrantfile
とりあえず2GBに設定しておきます。
Vagrantfile
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "2048"
end
仮想マシンのメモリ設定 for Docker
Docker version 2系の場合はdocker-compose.yml
のコンテナ名下の階層にmem_limit
を設定することで増やせるとのこと。
Docker version 3系は公式ガイドに記載されていますがmem_limit
が削除されていて使えません。
詳しいところは下記のサイトでわかりやすくまとまっています。
docker-compose におけるメモリ使用量の制限方法