Visual Studio CodeのRemote Containersを使おうとしたところ、コンテナの生成から先に進まなくなってしまったので調査しました。
2019/7/5追記
Remote - Containers - Visual Studio Marketplace にdocker-compose.ymlのバージョンについて記述がありました。
System Requirements
Local: Docker Desktop 2.0+ for macOS/Windows or Docker CE/EE 18.06+ and Docker Compose 1.21+ for Linux. Docker Toolbox and Ubuntu snap packages are not supported. For Windows, Windows 10 Professional or Enterprise is required due to the requirements of Docker Desktop or Windows. See the minimum requirements for VS Code for additional details.
Visual Studio Code Remote Development ばかり確認して気づいていなかったです。失礼いたしました。
結論
docker-compose 1.21 以上を使いましょう。
作業環境
$ docker-compose --version
docker-compose version 1.20.1, build 5d8c71b
$ docker --version
Docker version 18.09.5, build e8ff056
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
プロジェクトは Visual Studio CodeのRemote ContainersでC++開発環境構築 - Qiita で作成したものを利用しました。
エラー内容
対策内容としては結論で書いたぐらいしかないのですが、どんな症状が出たのかを簡単に記録しておきます。
以下のキャプチのの通り、Creating vscode-cpp-devcontainer_devcontainer_cpp_1 ... done
で停止してしまいました。
正しく起動出来た場合は Run: docker exec df6486edb33df0f92dd9b283dbae022de9e0ea98ab7baff7b527aebcf017348b test -d /root/.vscode-server
とvscode serverの起動や拡張機能のインストールが始まります。
対応バージョン
docker-compose 1.20.1
でエラーが出たので、周辺のバージョンで試してみました。
おそらく1.21
以上であれば問題ないでしょう。
1.21
のどの修正が効いているのかは確認できていませんが
バージョン | 起動可否 |
---|---|
1.19 | ☓ |
1.20 | ☓ |
1.21 | ○ |
1.22 | ○ |
1.23 | ○ |
1.24 | ○ |
おわりに
今後新規に構築する場合は発生しにくい事象だとは思いますが、地味にハマったので記録しておきます