VSCodeのDevcontainerでRustを動かそう
はじめに
VSCodeのDevcontainerを使ってRustの環境を作成し、最速でHello, world!をしましょう。
事前準備
事前に3つのインストールが必要です。
- dockerとdocker-compose
Dockerデスクトップをインストールすれば、2つとも用意されるのでおすすめです。 - VSCode
- VSCodeの拡張機能
Remote Develpment
設定ファイルの作成
Devcontainerの立ち上げに必要なファイルは
docker-compose.yml
とdevcontainer.json
だけです。
プロジェクトルート/
└ .devontainer/
├ docker-compose.yml
└ devcontainer.json
docker-compose.yml
Rustを開発するコンテナの設定を記載します。
services:
rust_devcontainer:
image: rust:1.71.0-bookworm
restart: always
tty: true
volumes:
- ../:/workspace
working_dir: /workspace
解説
image
は、特に指定がなければ最新を選びます。
restart
は、明示的にStopされなければ再起動されるようにalwaysを指定しておきます。
tty
は、trueします。Rustのイメージにはコンテナを起動させ続けるためのプロセスが存在せず、起動後すぐに停止してしまうため、ttyをtrueにして仮のプロセスを動かしたままにします。
volumes
では、ソースコードなどが入るフォルダを開発コンテナにマウントする設定を記載します。ホストのプロジェクトルートを/workspace
にマウントします。
working_dir
は、開発コンテナのプロジェクトルートを指定します。
devcontainer.json
開発コンテナに関するVSCodeの設定を記載します。
{
"dockerComposeFile": ["docker-compose.yml"],
"service": "rust_devcontainer",
"workspaceFolder": "/workspace",
}
解説
dockerComposeFile
には、環境立ち上げに使うdocker-compose.ymlのパスを記載します。
service
には、デタッチするdockerコンテナの名前を記載します。docker-compose.ymlでrust_devcontainer
と記載しているため、それに合わせます。
workspaceFolder
は開発コンテナ内のプロジェクトルートを記載します。
Devcontainerを起動する
VSCodeの左下の><
のマークをクリックして、コンテナで再度開く
をクリックします。
初回の場合は、Rustのコンテナイメージをインストールする関係で長くなります。
Hello, world!の実行
VSCodeのターミナルを出し、
以下のコマンドを実行して、Rustプロジェクトのひな形を生成します。
cargo new app
最期に以下のコマンドを実行すれば、Hello, world!
が実行されます。
cd app
cargo run
もっと早い方法
最小構成のRustのDevcontainer
- 上記のリポジトリを以下のコマンドでクローンします。
git clone https://github.com/ao-39/rust_devcontainer.git -b minimum_rust_devcontainer
- クローンしたリポジトリをVSCodeで開きます。
- VSCodeの左下の
><
のマークをクリックして、コンテナで再度開く
をクリックします。 - 以下のコマンドでHello, world!を実行します。
cd app
cargo run
さいごに
今回は最小構成でセットアップをしました。
Rustには便利なVSCodeの拡張機能や開発ツールなどがあるため、それらを活用するための設定を追加するとDevconatinerを使うメリットが高まります。
今後、VSCodeの拡張機能やRustの開発ツールをDevcontainerに追加する記事を作成出来たらと思います。
Discussion