1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rustのお勉強 #1 環境構築編

Posted at

はじめに

C#しか触ったことのないエンジニアが急にRustを勉強したくなったので記録としてQiitaに残します。どこまで続くかはわかりません。基本的にはRustの内容を記載するつもりですが、それ以外のこともアウトプット目的で書きます。

Rustについて

Rust(ラスト)は、性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指しており、構文的にはC++に似ているが、「ボローチェッカー」(borrow checker) で参照の有効性を検証することによってメモリ安全性を保証できる。Rustはガベージコレクションなしでのメモリ安全性を達成しており、必要な場面で参照カウントを使うこともできる 。

参考文献:https://ja.wikipedia.org/wiki/Rust_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)

らしいです...

さっそくやってみよう

環境構築編

使用環境

  • 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を開くとこのような画面になり、
    image.png
    New Dev Containerを押下します。

手順③

  • image.png
    プルダウンをDockerに選択して、先ほど作成した「devcontainer.json」を指定します。
    その後、Build Container and Continueを押下

手順④

  • 初回のみコンテナ用のRustRoverがインストールされ、コンテナが立ち上がると思います。
    Continueを押下して、RustoRoverを立ち上げましょう。
    image.png
    問題がなければこのようになるはずです。

    Docker Desktopも見てみましょう。
    image.png
    問題なく立ち上がっていますね。

手順⑤

  • RustRover内でターミナルを開き
cargo --version

と入力しましょう。「cargo 1.78.0 」と表示されれば成功です。

さいごに

VS CodeでDev Container拡張機能を入れると同じ事ができると思います。(試していないのでわかりませんが...)

書くの疲れたので今回はこのあたりにします。
次回のHello World編でお会いしましょう。
ありがとうございました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?