VSCodeについての自分用メモ。
目次:
編集画面Tips
Ctrl + Shift + P
でコマンドパレットが表示される- 文字列をHTMLのタグで囲みたい時は文字列を選択してからコマンドパレットから
Emmet: Wrap with Abbrebiation
を実行する
リモートDockerコンテナで開発する
SSHで接続した先のリモートホスト上で動くDockerコンテナ内で開発する方法。 開発環境はDockerコンテナ内に構築する。 ローカルマシンにはDockerも開発言語もインストールしなくてよい。
VSCodeと拡張機能の準備
- クライアント側から公開鍵でパスワードなしで
ssh ユーザ名@ホスト名
で接続できるようにしておく - ローカルにVS Codeをインストールする
- 拡張機能 Visual Studio Code Remote Development Extension Pack (Remote Development)をインストールする
Dockerfileを準備する
ソースコードはリモートホスト上に置く。 正常にビルドできるDockerfileを用意する。
次のように開発用ユーザーを追加する記述も入れておく。
RUN addgroup -g 1000 devuser && \ adduser -u 1000 --home /tmp devuser -G devuser -D
devcontainer.jsonを準備する
Dockerを実行するディレクトリに.devcontainer
ディレクトリを作成し、その中にdevcontainer.json
を作成する。
以下のような内容で事前に準備してもよいが、なければ初回接続時に一般的な内容のものが作成される。
.devcontainer/devcontainer.json:
{ "name": "testdev", "build": { "dockerfile": "../Dockerfile" }, "forwardPorts": [3000], "remoteUser": "devuser" }
"remoteUser"
にはDockerfileで作成したユーザーを指定する。
初回接続
- 左下の
><
をクリックし、[ Connect Current Window to Host... ]
を選択する - ホストを選択するか、
+ Add New SSH Host...
をクリック → 上記ユーザ名@ホスト名
を入力 →.ssh/hosts
を選択 →Open Remote
を選択する - ソースコードのあるディレクトリを開く
- コマンドパレットから
[ Reopen in Container ]
を選択する
もしdevcontainer.jsonファイルがない場合には、 From Dockerfile
を選択してDockerfileを指定するとdevcontainer.jsonファイルが作成される。
初回はコンテナをビルドするため時間がかかる。
ビルドに失敗して、その後に修正しても反映されない場合には、リモートホスト上でdocker ps --all
をしてエラーを起こしたコンテナが残っているか確認する。
もしコンテナが残っていたらdocker rm コンテナID
で削除するとビルドできるようになる場合がある。
2回目からの接続
2回目からは次のどちらかで接続できる。
[ Connect Current Window to Host... ]
で接続し[ Reopen in Container ]
を実行する- VSCode の「最近使用した項目」から
[ Dev Container: 〜 ]
と書かれている項目を選択する
なお、Dockerfile内ではUID、GIDともに1000で作成したが、Remote Developmentを使うと実行時に利用者のUID、GIDに変更してくれる。