こんにちは!seiです!
エラーの発生環境
プロジェクト先でDockerを使ってチーム内のコンテナ開発環境を作成していました。
全員エディターはVScodeを使っていたので、拡張機能の「Dev Containers」を使いました。
この拡張機能を使ってwslからコンテナの起動および接続を行った際に、上記のエラー「Error: Command faild: docker-compose version –short 」が発生しました。
目次
エラーの原因
docker-composeコマンドが使えないためでした。
docker-composeコマンドを使うにはdocker compose(V1)が必要です。
僕のWSL2環境にはdocker compose(V2)がインストールされていましたが、V2のコマンドは「docker compose」なので使えません。
.bashrcにdocker-composeをエイリアスとして登録してみてもできませんでした…
拡張機能がまだdocker compose(V2)に対応してないのではないかと思われます。(2023年7月現在)
なお、docker compose(V1)とV2は共存が可能です。
対処法
- docker compose (V1)をインストールする
- docker-compose.yamlファイルのversionを変更する
しょうがないのでdocker composeをV1もインストールして、docker-compose.yamlファイルもversionを落としました。
docker compose v1 のインストール
簡単です。2行で終わります。
curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose.yamlファイルの編集
拡張機能がdocker-compose.yamlファイルのversion:3.8の書き方に対応していなかったので、version:2.0にしました。
version: '2' // versionを3→2にした
services:
web:
build: ./web
volumes:
- ./web:/code
ports:
- 8001:8000
これで解決するはずです!