とにかくさっさとRustを始めたい
VS Code の Remote Container 機能を使ってとにかくさっさとRustを始めたいという方に、以下の docker-compose.yaml をご用意いたしました!
version: '3'
services:
rust:
image: rust:1.38
volumes:
- .:/opt/rustapp
environment:
- USER=`${USER}`
working_dir: /opt/rustapp
stdin_open: true
rust:1.38
は現時点での最新バージョンです。Docker HubのRustページから配布されているお好みのバージョンを指定してください。
/opt/rustapp
は適当です。こちらもプロジェクト、もしくはバイナリの名前に合わせて調整してください。
${USER}
は Cargo
実行する際に環境変数USER
がないと怒られたので設定しています。。。(バージョンの依存とかあるのでしょうか?なくて良ければなくていいけど・・・)
こちらを Rust プロジェクトのフォルダに置いてください。
Docker Compose でコンテナの起動
続いて以下のコマンドで上記のコンテナを起動します。
$ cd プロジェクフォルダ
$ docker-compose up -d
あら簡単。
VS Code で開く
VS Code を起動し Remote Explorer のDev Containers
タブから プロジェクトフォルダと同じ名前のコンテナ
を探して connect to container
しましょう。
コンテナの中に接続された状態で VS Code の新規ウィンドウが立ち上がると思います。
Open Folder
にて、上記docker-compose.yaml
のvolumes
で指定したフォルダ(今回の場合は/opt/rustapp
)を開いてください。
ターミナルから Cargo の実行
VS Code 上で新規のターミナルを開き、以下のコマンドでRustプロジェクトを開始します。
$ cargo init
Created binary (application) package
Cargo.toml
ファイルとsrc
フォルダが無事に生成されたと思います。
src
フォルダにはサンプル(?)のHello World
を出力するコードが既にありますので以下のコマンドでビルド&実行してみましょう!
$ cargo install --path .
Installing rustapp v0.1.0 (/opt/rustapp)
Compiling rustapp v0.1.0 (/opt/rustapp)
Finished release [optimized] target(s) in 0.90s
Installing /usr/local/cargo/bin/rustapp
Installed package `rustapp v0.1.0 (/opt/rustapp)` (executable `rustapp`)
$ rustapp
Hello, world!
cargo install
でフォルダ名と同じ名前のバイナリをビルドし/usr/local/cargo/bin/
以下にインストールしてくれます。
そしてこの時点でもうコマンドとして使えるようになっているのです!
今回の場合のバイナリであるrustapp
とコマンドを叩くと Hello, World!
と応答を返してくれます。
あら簡単!
ここからが大変なんだけどね・・・
Rust、コーディングのハードルはそこそこ高いので新規プロジェクト始めるのくらいは簡単にしておきたいですね〜、ということで!
以上でした。