MENU

docker-composeで Cannot create container for service xxx : status code not OK but 500 というエラーが出た時の解決方法

状況

docker-composeを立ち上げようとした時、下記のようなエラーが出てうまくいかなかった。

ERROR: Cannot create container for service postgresql: status code not OK but 500:

     

原因・解決方法

Windows用のDocker Desktopでは、File Sharging設定で自分が参照するフォルダを指定してやらないとだめらしい。

[手順]

1. Docker Desktopから[Settings] > [Resources] > [FILE SHARING] へ遷移
2. 自分がdocker-composeで参照するディレクトリを指定
3. Docker Desktopをリスタート

f:id:kumaGoro_95:20220321125559p:plain  

Resources に FILE SHARING が存在しない時

ベースエンジンにWSL2を利用していると、リソース割り当ての管理はWindowsに任され、ユーザーからは変更できないらしい。 f:id:kumaGoro_95:20220321235937p:plain このような場合は、下記手順で FILE SHARING を変更できるようになる。

[手順]

1. [Settings] > [General] へ遷移する。
2. `Use the WSL2 based Engine` のチェックを外す。

f:id:kumaGoro_95:20220322000416p:plain

 

Required Windows feature(s) not enabled: Hyper-V. という警告が表示された場合

Dockerを動かすにはWindows 10上でLinuxを動作させるための仮想マシンが必要で、WSL2使用しないのであれば代わりにHyper-Vを使用することになる。だが、そのHyper-Vが有効化されていないという状況。 Hyper-Vを有効にすれば警告は解消される。

[手順]

管理者権限でPowerShellを開き、下記コマンドを実行後再起動する。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

 

これで無事エラーが解消されました。

   

参考