Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
13
Help us understand the problem. What is going on with this article?
@koinori

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

More than 1 year has passed since last update.

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

以上でした。

13
Help us understand the problem. What is going on with this article?
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
koinori
最近の記事はタグが5つじゃ足りない。
pro-japan
さまざまな価値観を持ち、日々変化し続ける技術を探究し、チャレンジし続けることで、楽しみながら「あったらいいな」を創り上げ、実現します。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
13
Help us understand the problem. What is going on with this article?