イヌツムリのメモ

学習したことのメモである。しかし、他の人が読んでもわかるように書こう。

dockerとvscodeでrust環境を構築する on Windows10

はじめに

windows10上で、rustのdocker containerを作成し、 vscode上で編集したrustのソースコードをビルドして実行するまでの手順を示す。

概要図を挿入したい

手順

  1. rustのdocker imageを取得する
  2. rustのdocker containerを作成する
  3. vscodeのextensionをインストールする

docker containerの作成

dockerの記事リンク

container作成のため、rustのdocker imageをdocker hubより入手する。 windows上で、powershellを用いて下記コマンドを実行する。

> docker pull rust

下記コマンドを用いて、rustのdocker imageをダウンロードできたことを確認する。

> docker images
REPOSITORY  TAG     IMAGE ID      CREATED      SIZE
rust        latest  2f75dad0e7a5  4 weeks ago  1.28GB

pullしたときにTagを指定していないため、Repositoryにrust、Tagにlatestと表示される。
正しくダウンロードできていない場合は、Repositoryにrustが表示されない。

imageをダウンロードできたら、containerを作成する。

docker run --name rust-env -it -d rust /bin/bash

vscodeのextension

Remote - Containers をインストールする。

vscode extensionの記事

rustプロジェクトの作成とビルド、実行

vscode上にあるメニューバーのTerminalからNew Terminalを選択してrust-envのterminalを起動する。

起動したterminalパネルから、rust環境向けのディレクトリを掘っておく。

$ mkdir rust
$ cd rust

rustのツールcargoを用いてプロジェクトを作成する。 今回helloプロジェクトを作成する。

$ cargo new hello  

helloディレクトリ以下にディレクトリ及びファイルが作成されていることを確認する。

$ ls hello
Cargo.toml  src
$ ls hello/src
main.rs

vscode上にあるメニューバーのFileから作成したプロジェクトを開く。 Open Folderから作成したhelloを選択する。

図を挿入したい

main.rsはデフォルトでmain.rsというファイルが作成されている。

fn main() {
    println!("Hello, world!");
}

cargoコマンドを用いて、helloプロジェクトのビルドとバイナリを実行することができる。 cargo buildすればビルドだけ実行できる。
ビルド済みでcargo runすればバイナリ実行だけ行うことができる。

$ cargo run
 Compiling hello v0.1.0 (/home/dogsnail/rust/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 3.23s
     Running `target/debug/hello`
Hello, world!

最後に

dockerを用いてrustプロジェクトを作成し、バイナリを実行する手順を示した。 次回は、rustファイルの分割および、外部ファイルを用いる方法を説明する。

参考

  1. Docker再入門 - Qiita

  2. Hello, Cargo! - The Rust Programming Language