Visual Studio Code Dev Containers での開発環境構築について調査した結果を備忘録として残しておく
Dev Containers について
以下のような構成になる
引用元: https://code.visualstudio.com/docs/devcontainers/containers
以下のようなメリットがある
- プロジェクトごとのミドルウェアなどをコンテナに閉じ込めることができる
- ホスト環境を汚さない
- VS Code の Extention もコンテナに閉じ込められる
- 環境構築を自動化できる
- 新規に作成したり、別のPCでの作り直しが簡単
環境構築について
前提条件
VS Code で以下の Extention をインストールする
- Remote Development
- Dev Containers ※テンプレートを使用する場合
- Docker
- Docker Desktop or Rancher Desktop
実際の例
新規で作成する場合
- VS Code の左下の「><」ボタンを押下
- 「新しい開発コンテナー…」 を選択
- ベースとなる設定を選択する
基本的には Dockerfile or Docker Compose の話になるのでそちらに慣れていれば問題なくできると思われる
テンプレートの使用
- コマンドパレットで「Add Dev Container Configuration Files…」を選択
- 「ワークスペースに構成を追加する」を選択
- 「すべての定義を表示…」を選択
- 以降は新規で作成する場合と同様
4-1. ℹ️を押下することでテンプレートの使い方やカスタマイズ方法が表示される
Tips
ホスト側の DB クライアントから接続したい場合
以下の2つのファイルの設定を修正する必要がある
参考
ソースコードでの設定
設定変更した際はリビルドを行うこと
version: '3'
services:
# 省略・・・
db:
# 省略・・・
ports:
- "5432:5432"
# 省略・・・
{
// 省略・・・
"forwardPorts": [5432],
// 省略・・・
}
DB クライアントでの設定
ポイントとなる設定は以下
- ホスト名/アドレス: 127.0.0.1
- ポート番号: 5432 ※ソースコード側でマッピングした値
VS Code の設定および拡張機能の追加
以下を設定することで開発者間で同じ設定と拡張機能をインストールした状態で開発が行える
{
"customizations": {
"vscode": {
// 設定値は、拡張機能 > ⚙️ > 拡張機能 ID のコピーで取得
"extensions": [
"misogi.ruby-rubocop"
],
// 設定値は、 settings.json で取得
"settings": {
"editor.tabSize": 2,
"editor.renderWhitespace": "all",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"diffEditor.ignoreTrimWhitespace": false
}
}
}
}