はじめに
C#しか触ったことのないエンジニアが急にRustを勉強したくなったので記録としてQiitaに残します。どこまで続くかはわかりません。基本的にはRustの内容を記載するつもりですが、それ以外のこともアウトプット目的で書きます。
Rustについて
Rust(ラスト)は、性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指しており、構文的にはC++に似ているが、「ボローチェッカー」(borrow checker) で参照の有効性を検証することによってメモリ安全性を保証できる。Rustはガベージコレクションなしでのメモリ安全性を達成しており、必要な場面で参照カウントを使うこともできる 。
らしいです...
さっそくやってみよう
環境構築編
使用環境
- Windows11
- Docker Compose
- RustRover 2024.1
- Dev Container
VS Codeの拡張機能であるDev ContainerがRustRoverで使用できるみたいなので採用しました。
Dockerfileとdocker-compose.ymlの作成
- ディレクトリ構造
rs-practice-project
└ .devcontainer
├ devcontainer.json
├ Dockerfile
└ docker-compose.yml
- Dockerfile
FROM rust:1.78.0
Rustの元となるイメージを指定します。
- docker-compose.yml
version: 3.8;
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ../:/app/rust
tty: true
working_dir: /app/rust
- version
docker composeで使用するバージョン - services
アプリケーションを動かくための各要素の親みたいなやつ - app
今回メインとなるコンテナの名前 - build
Dockerfileをもとに作成したオリジナルのDockerイメージを使用する。自分で作成しない場合は、下記みたいに指定します。
image : 公式に上がっているイメージ名
- context
Dockerfileがあるパス
今回だとdocker-compose.ymlと同じ位置にあるので「.」のみ - dockerfile
指定するDockerfileの名前 - volumes
「:」より左側がホスト(Windows側)のフォルダ
右側がコンテナ上のパス - tty
trueにすることでコンテナを起動したままにできる - working_dir
コンテナ内の作業パスを指定できる。
devcontainer.jsonの作成
{
"dockerComposeFile": ["docker-compose.yml"],
"service": "app",
"workspaceFolder": "/app/rust"
}
- dockerComposeFile
docker-compose.ymlを指定 - services
docker-compose.ymlで作成したコンテナの名前を記載 - workspaceFolder
現在ローカルで開いているディレクトリをコンテナ内のどのパスで使用するか記載
RustRover
RustoRoverを使用して実際にコンテナを起動してみます。
手順①
- 作成したDockerfileとdocker-compose.yml, devcontainer.jsonを.devcontainerフォルダに格納します。
手順②
手順③
手順④
- 初回のみコンテナ用のRustRoverがインストールされ、コンテナが立ち上がると思います。
Continueを押下して、RustoRoverを立ち上げましょう。
問題がなければこのようになるはずです。
Docker Desktopも見てみましょう。
問題なく立ち上がっていますね。
手順⑤
- RustRover内でターミナルを開き
cargo --version
と入力しましょう。「cargo 1.78.0 」と表示されれば成功です。
さいごに
VS CodeでDev Container拡張機能を入れると同じ事ができると思います。(試していないのでわかりませんが...)
書くの疲れたので今回はこのあたりにします。
次回のHello World編でお会いしましょう。
ありがとうございました。