LoginSignup
18
14

More than 3 years have passed since last update.

【2019年10月版】VS CodeのRemote ContainerでRustをさっさと始めよう!

Posted at

とにかくさっさとRustを始めたい

VS Code の Remote Container 機能を使ってとにかくさっさとRustを始めたいという方に、以下の docker-compose.yaml をご用意いたしました!

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.yamlvolumesで指定したフォルダ(今回の場合は/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、コーディングのハードルはそこそこ高いので新規プロジェクト始めるのくらいは簡単にしておきたいですね〜、ということで!

以上でした。

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14