vscodeのdevcontainerを利用する
開発環境を構築する際に利用する場合があります。私が以前いた場所では使っていました。OracleのDBサーバーを開発環境として構築する際にdevcontainerを使っていました
devcontainerを用意しておけばdockerのコマンドを使わなくてもコンテナの利用ができます
導入
拡張機能を入れておきます
- Dev Containers
利用する
試しにRustの開発環境を作成します
何もファイルなどがない空のフォルダをvscodeで開きます
ターミナルにてcargo -Vと入力します
もしもRustの環境がマシンにない人はコマンドがないというエラーになると思います
次に画面左下の><マークをクリックして、Reopen in Containerをクリックします
そのまま検索欄にrustを入力して、Rust devcontainerをクリックします
そのまま流れでデフォルトを選択して、最後は0個を選択のままOKボタンをクリックします
するとイメージのビルドなどが行われますのでそのまま待ちます
エクスプローラーに.devcontainerフォルダが作成されます
ターミナルにてcargo -Vを入力するとコマンドが利用できることがわかります 私の場合は自身の端末より新しいバージョンであることが確認できています
つまりコンテナの環境でコマンドが実行できているのです
そのままcargo initしてcargo runするとRustの実行までできます
.devcontainerフォルダにはdevcontainer.jsonができています
{ "name": "Rust", "image": "mcr.microsoft.com/devcontainers/rust:1-buster", // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "rustc --version", // Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" }
このようにjsonファイルを元にコンテナを作成してくれるのです
自分で.devcontainerを作成する
また空フォルダを開いたら、Dockerfileを作成します
簡単にnodeを利用するだけです
FROM node:18
D:. Dockerfile サブフォルダーは存在しません
ただDockerfileを作っただけですね
ここまで出来たら、画面左下の><ボタンを押して今度はOpen folder in Contaierをクリックします
そして現在のフォルダを選択したら、fron Dockerfileを選択します
すると自動的に.devcontainerというフォルダとdevcontainer.jsonが作成され、コンテナが起動します
ターミナルからnode -vを実行します
Dockerfileに基づいたコンテナが作成されています