はじめに
C++の学習をしていて、実行環境が必要になった。
コンテナ型を用いた環境構築には
- どのOSでも挙動を統一できる
- OS本体を汚さずに済む
- 仮想化の中では軽量
- イメージサイズが小さい
という利点があるそうなので、使ってみることにした。
※初学者なので、つたない部分があるが、そこは大目に見てほしい。
方法
必要なソフト
- VSCode
- Docker Desktop (CEだとTry...は動かない?*)
- (WindowsならWSL2)
- VSCodeの拡張機能タブで、Dev Containers(またはRemote Developmentバンドル)をインストール
- F1(検索ボックスに
>
を入れる) -> Dev Containers: Try...を実行 - C++を選択
- 1~2分ほどで2つのイメージががビルドされ、VSCodeからアクセスできる
その他
書式
設定(Ctrl + ,)から
- Clang_format_fallback Style:好きなものを選択
- Format On Paste, Format On Save:有効
各種ツールのインストール
定番ツールはF1 -> DevContainers: Configure Container Features...でインストールできる
Dockfile、docker-compose.yml、devcontainers.jsonでコマンドを動かすこともできる
devcontainers.jsonでpostStartCommandを指定すると、更新するたびにビルドをしなくて済むので良いと思った
拡張機能は右クリックからdevcontainers.jsonに追加することで、イメージをビルドするときも自動でインストールされる。
デバッグオプションの変更
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Main",
"type": "cppbuild",
"command": "g++",
+ "args": [
+ "-g",
+ "${workspaceFolder}/*.cpp",
+ "-o",
+ "${workspaceFolder}/main.out"
+ ],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
感想...異なるPCで同じ実行環境を用意できて、メインPCと依存関係もないので、保守性が高いと感じました。
今回は作業フォルダをすべてvolumeイメージにしてマウントする方法でしたが、ほかにもメインPCのフォルダをbindマウントする方法もあり、そちらも試してみたいです。
参考
複数ファイルからなるC++プログラムをVSCodeで実行する手順の備忘録
https://terumikanblog.com/vscode/