いしぐめも

プログラミングとかしたことを書きます。

いつの間にかVSCode の Remote - Containersが超絶パワーアップしていた件【docker client 不要】

以前、「Docker Desktop for Windows」無しで Visual Studio Codeで「Remote - Containers」を使用するために Docker client を手動ダウンロードするお話を書きましたが、それがもはや不要だそうです。

yoh1496.hatenablog.com

はじめに

なんとなく Remote - Containers のドキュメントを読んでいたら以下のような記述を発見しました。

もうDocker clientはいらないらしい

If you are using a Linux or macOS SSH host, you can use the Remote - SSH and Remote - Containers extensions together. You do not even need to have a Docker client installed locally.

code.visualstudio.com

どういうことか

超絶ハイパワーなサーバー上でコンテナを立ち上げて開発したいと思ったこと、あると思うんですが、以前までの拡張機能では単体でそういったことが行えず、ローカルに導入したDockerクライアントを使ってリモートのDockerホストを使用するという方法を取る必要がありました。

それが今回(?)、アップデートによって Remote - SSH と組み合わせて使うと、リモートで「Reopen in Container」するとリモートでコンテナが立ち上がり開発できるようになったみたいです!すごい!!!

ちなみに、これもしかして実は昔からできて、自分の勘違いだったんじゃ???って思いましたが、Webアーカイブから見るに、以前のドキュメントにはこのような記載はなく、新規に追加された機能っぽい です。

と、テンション上がっていたんですが、この機能 2021年11月に追加されたみたいですね・・・

実は 1.63(2021年11月) のリリースノートに書かれていました・・・

https://github.com/microsoft/vscode-docs/blob/main/remote-release-notes/v1_63.md#containers-version-0209x

もっと話題になればいいのに!!!というか自分のアンテナが低すぎか!!!!

メリット

ローカルマシンにdockerクライアント不要

これはうれしいですね。VSCode入れられればどこでもコンテナ使った開発ができると。

「devcontainer使うためにdocker導入してくださいね~~~~」っていうのが必要なくなります。

docker-compose.yml 不在問題がなくなる

ローカルマシン上のdocker-compose.ymlを使用してリモートのDockerホストにコンテナを立てるとどうなるか。

リモートからは見えない位置にdocker-compose.ymlがあるので、リモートから docker-compose down できなくなります。

リモートのコンテナを落とそうと思っても…

docker-compose.ymlがローカルにあるため失敗する・・・(従来)

それが今回、リモートホスト上のdocker-compose.ymlを使用してそのマシン上のDockerホストにコンテナを立てることになるので、そういった問題が発生しなくなります。

docker-compose.ymlはリモートにあるのでちゃんと落とせる!

手元のファイルシステムをコンテナのボリュームにマウントできる

今までの方法ではdevcontainerがあるフォルダはローカルマシンで、実行環境はリモートという構成になっていたためファイルシステムをマウントすることができず、代わりにvolumeを作成してマウントし、その中にgit cloneする必要がありました。

やってみればそれの何が不便というわけでもないんですが、devcontainerとソースコードをひとまとめに管理できるというのが良いかなと思います。

終わりに

あんまりDockerクライアントのみをローカルマシンにインストールしてリモートのDockerホストを使用するという方法を取ってる人はいないのかもしれませんが、個人的にこれがビッグニュースだったので書いてみました。