📦

VSCodeのDevcontainerでRustを動かそう

2023/07/16に公開

はじめに

VSCodeのDevcontainerを使ってRustの環境を作成し、最速でHello, world!をしましょう。

事前準備

事前に3つのインストールが必要です。

設定ファイルの作成

Devcontainerの立ち上げに必要なファイルは
docker-compose.ymldevcontainer.jsonだけです。

プロジェクトルート/
    └ .devontainer/
        ├ docker-compose.yml
	└ devcontainer.json

docker-compose.yml

Rustを開発するコンテナの設定を記載します。

docker-compose.yml
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の設定を記載します。

devcontainer.json
{
  "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
https://github.com/ao-39/rust_devcontainer/tree/minimum_rust_devcontainer

  1. 上記のリポジトリを以下のコマンドでクローンします。
git clone https://github.com/ao-39/rust_devcontainer.git -b minimum_rust_devcontainer
  1. クローンしたリポジトリをVSCodeで開きます。
  2. VSCodeの左下の><のマークをクリックして、コンテナで再度開くをクリックします。
  3. 以下のコマンドでHello, world!を実行します。
cd app
cargo run

さいごに

今回は最小構成でセットアップをしました。
Rustには便利なVSCodeの拡張機能や開発ツールなどがあるため、それらを活用するための設定を追加するとDevconatinerを使うメリットが高まります。
今後、VSCodeの拡張機能やRustの開発ツールをDevcontainerに追加する記事を作成出来たらと思います。

コラボスタイル Developers

Discussion