VSCodeのRemote-SSHからDevContainerを起動するやつをやってみた
概要
Docker DesktopでのDevContainerを使った環境構築は楽でサイコーなんだけど、Docker Desktopの有償化云々の件を考えると、Desktop使わずに済ませたいなーと思っていたところ、こちらの記事でRemote-SSHからできるようになっていたと知り、これだ!!ということで試してみた。
Visual Studio Codeで使えるリモート環境のdevcontainerが意外と便利そうだったのでまとめ
ただ、必要なことはすべて参照元にあるので、こちらの記事では最低限DevContainerやりたいときどうする?だけ書く。あと感想。
やること
- Linuxサーバを用意してssh接続できるようにする
- Dockerをインストール
- VSCodeからRemote-SSH接続
- DevContainer起動
- 開発が捗る
内容
Linuxサーバを構築する
ここは割愛。ssh接続できるようにしてね
Dockerをインストール
Docker Desktopではなく、コマンドラインでDocker engineを入れておく。
公式のドキュメントに従って入れればOK。
VSCodeにRemote-SSHを入れて、サーバへ接続
VSCodeをインストールして、拡張機能でRemote-SSHをインストール、サーバへ接続する。
こちらのページがとてもわかり易いです。
VSCodeを使ってサーバー環境にSSHリモート接続手順
DevContainer起動
さて、Docker Engineが入ったサーバへssh接続できれば、あとはローカルのDocker DesktopでDevContainer作成する場合とほぼ同じです。[1]
VSCodeで「フォルダを開く」→作業ディレクトリを選択。
作業ディレクトリがなければ、VSCodeでターミナルを開いて、 mkdir
しましょう。
その状態でコマンドパレットを開いて「Dev Conteiners: Open Folder in Container...」、もしくは左下の「SSH:サーバ名」をクリックして「Reopen in Container」
.devcontainerがなければ、作成するウィザードが表示されるので、選んでいけば自動で.devcontainerが作成され、コンテナに接続されます。
感想
さて、上記の通り、簡単にサーバ側のDockerでDevContainerを起動することができました。
どうしてもDocker Desktopを使いたくない、法人利用で費用を払いたくない向けにはいいかもですね。
ただ、手順を追ってみて考えるのは、これDevContainerである必要あるのかなぁということでした。
例えば、コンテナ側でホットリロードでデバッグしようとしても、ポートフォワーディング設定しないと別PC(手元のPC)から見えませんし、運用も考慮したり複数コンテナ(アプリとDBサーバとか)やり始めると、Dockerfileやdocker-compose.ymlとか書きたくなるので、だったら最初からDockerでいいんじゃないとちょっと思いました。
個人でやっている分には、結局Docker Desktop使うのがいいですねぇ。
余談
ちなみに最近は にアクセスすれば、ウェブでVSCodeができる。
ただし当然ながらDevContainerはできないし、ローカルファイルを扱いにくい。
一応、VSCode CLIを自前サーバにインストールして、Github Tunneleをすればほぼローカルと変わらない体験ができるらしいです。
VSCode の Remote Tunnels で「いつもの開発環境へ」お手軽リモート接続
これでAndroidタブレットやiPadでリモート開発だ!なんて思ったけど、やっぱりDevContainerは扱えないらしく、だとするとホットリロードや自動テストは、CI環境用意しないといけない・・・?
まだちょっと難しそうですね。
結局サーバ側でVim動かすほうがいいのではとちょっと思っている・・・
Discussion