forestec

勉強した内容をつらつらと備忘録として記していきます。

Rust環境をDockerで構築

Rustの環境をDockerで構築する際の備忘録

Dockerの導入については以下で紹介している。 yuzuremon.hatenablog.com

Dockerイメージのインストール

DockerHubから公式Rustのイメージをインストール

$ docker pull rust:1.30.1

コンテナ起動

インストールしたイメージからコンテナを起動、作成します。

コンテナを作成する前にローカルに開発を行うディレクトリを作成し、そこに移動します。

開発自体はローカル環境で行えるようにローカルとコンテナのディレクトリを同期してコンテナを作成します。

$ docker run -it --name rust_1.30.1 -w /app -v $(pwd):/app rust:1.30.1 /bin/bash

バージョン確認

$ rustc --version

以下が表示されました。

rustc 1.30.1 (1433507eb 2018-11-07)

Rust動作確認

Cargoを使用して新規プロジェクトを作成

$ cargo new --bin hello-rust

以下のようなエラーが発生。。。

error: Failed to create project `hello-rust` at `/app/hello-rust`

Caused by:
  could not determine the current user, please set $USER

USERを設定しろと言われていますね。

なので、USERをセットしてもう一度コンテナを再度実行

$docker run --rm -e USER=$USER -it -w /app -v $(pwd):/app rust:1.30.1

$cho $USERMac側で使用していたユーザーが表示されればOK

もう一度Cargoを使用して新規プロジェクトを作成

$ cargo new --bin hello-rust

またエラーが。。。

error: destination `/app/hello-rust` already exists

Use `cargo init` to initialize the directory

先程のエラー時にディレクトリだけは作成されていたようです。

ディレクトリを削除して再実行

Created binary (application) `hello-rust` project

やっと成功しました。

作成したプロジェクトを実行してみます。

$ cd hello-rust
$ cargo run --release

   Compiling hello-rust v0.1.0 (/app/hello-rust)
    Finished release [optimized] target(s) in 3.47s
     Running `target/release/hello-rust`
Hello, world!

表示されました。

これで環境構築は完了です。