株式会社プライムストラクチャーのエンジニアのSayaです。
今回は Docker 上で Rust が動く環境を構築してみましたのでその方法を紹介します。
検証環境
この検証は以下の環境で行いました。
macOS Mojave 10.14.5
Docker Engine 18.09.2
Docker Compose 1.23.2
ファイル構成
ファイル構成は以下のようにします。
- src - main.rs - docker - rust - Dockerfile - docker-compose.yml
Rust ファイルの作成
Rust を実行するファイルを作成します。
src フォルダの中に main.rs を作成します。
中身は簡単な計算の結果を表示するものです。
[main.rs] fn main() { let a = 5; let b = 10; println!("{} + {} = {}です。", a, b, a + b); }
docker-compose ファイルの作成
docker フォルダの中に docker-compose.yml を作成します。
[docker-compose.yml] version: "3.6" services: rust: build: ./rust tty: true volumes: - ../:/src ports: - 8999:80
Dockerfile の作成
docker フォルダの中に rust フォルダを作成し、以下のような Dockerfile を作成します。
USER という環境変数が必要になるため、ENV コマンドで定義します。
[Dockerfile] FROM rust:latest ENV USER=userName WORKDIR /src RUN apt-get update
コンテナを立ち上げる
以下のコマンドを実行してコンテナを立ち上げます。
$ cd docker $ docker-compose up -d
コンテナが立ち上がったら以下のコマンドでコンテナの中に入ります。
$ docker-compose exec rust bash
Rust ファイルを実行する
以下のコマンドを実行して、Rust のパッケージ管理ツールである Cargo の初期設定を行います。
$ cargo init
すると cargo.toml が作成されます。
これにはパッケージの情報やプロジェクトファイルの情報が入っています。
以下のコマンドで Rust ファイルを実行します。
$ cargo run
すると以下のように実行されます。
まとめ
今回は Docker で Rust が動く環境を構築する方法を紹介しました。
Cargo を使って Docker 内で Rust を実行することが出来ました。
次回以降では Rust を使って色々試してみたいと思います。