Help us understand the problem. What is going on with this article?

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

とにかくさっさと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、コーディングのハードルはそこそこ高いので新規プロジェクト始めるのくらいは簡単にしておきたいですね〜、ということで!

以上でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした