🐳毎回使える！DockerでRuby環境を作るテンプレ手順書📕 (Ruby学習 part1)


Rubyの学習や開発を行う際に、毎回安定した環境をサクッと構築するためのテンプレート手順をまとめました。Dockerを使って環境構築を行う方法を、初心者の方にもわかりやすく解説しています。

---

## ✅ 目次

1. プロジェクト用ディレクトリの作成
2. Dockerfile・docker-compose.ymlの記述
3. Docker Desktopの起動
4. ターミナルでDockerを実行
5. コンテナ内へログイン
6. Rubyのバージョン確認
7. コマンド一覧（🇯🇵日本語訳つき）
8. ターミナルの表示状態の見分け方



## 1. プロジェクト用ディレクトリの作成

```bash
cd ~                         # ホームディレクトリに移動
mkdir ruby_playground       # プロジェクト用ディレクトリ作成
cd ruby_playground          # 作成したディレクトリに移動
touch Dockerfile            # Dockerfileを作成
touch docker-compose.yml    # docker-compose.ymlを作成
```
自分のホームに Ruby の作業部屋（ruby_playground）を作り、その中に「どう構成するか（Dockerfile）」と「どう起動するか（compose.yml）」の2つの設計図を配置します。



## 2. Dockerfile・docker-compose.ymlの記述
Dockerfile
```Dockerfile
FROM ruby:3.1.3
ENV LANG C.UTF-8
ENV TZ Asia/Tokyo
RUN apt-get update
WORKDIR /app
```
Ruby 3.1.3 をベースに、日本語対応・東京時間に設定し、作業ディレクトリ /app を指定した環境を構築します。

---
docker-compose.yml
```yaml
version: '3'
services:
  ruby:
    build: .
    container_name: ruby_playground
    tty: true
    volumes:
      - type: bind
        source: ./
        target: /app
```
| 項目 | 意味・役割 |
|------|------------|
| version: '3' | Docker Composeのバージョン |
| services: | 以下に使用するサービス（＝環境）を定義 |
| ruby: | サービス名（`docker compose run ruby` などで使う） |
| build: . | 現在のディレクトリにあるDockerfileで構築 |
| container_name: ruby_playground | コンテナの名前を指定 |
| tty: true | 対話モードを有効にする設定 |
| volumes: | ローカルとコンテナのフォルダを同期（bind） |
| source: ./ | ローカルの作業ディレクトリ |
| target: /app | コンテナ内のマウント先 |

## 3. Docker Desktopの起動
アプリを起動するだけでOK。
※Dockerエンジンがバックグラウンドで動くようになります。



## 4. ターミナルでDockerを実行
```bash
docker compose build
docker compose up
```
| コマンド | 意味 |
|----------|------|
| `docker compose build` | Dockerfile をもとに環境を構築 |
| `docker compose up` | docker-compose.yml をもとに環境を起動 |
| `docker compose up --build` | 再ビルドも含めて起動 |
| `docker compose down` | 起動中の環境を停止・削除（片付け） |

## 5. コンテナ内へログイン
起動とは別の新しいターミナルを開き、以下を実行：
```bash
docker container exec -it ruby_playground bash
```
起動中の ruby_playground コンテナ内にログインし、bashで操作を行います。

### なぜ「別のターミナル」でログインするの？
docker compose up はログを表示し続けるため、同じターミナルで他の作業ができなくなります。
そのため、別のターミナルを立ち上げて作業を行います。



## 6. Rubyのバージョン確認
```bash
ruby -v
```
出力例：
```scss
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]
```
| 項目 | 意味 |
|------|------|
| `ruby 3.1.3` | Rubyのバージョン |
| `p185` | パッチ番号 |
| `2022-11-24` | リリース日 |
| `[x86_64-linux]` | 実行環境の種類 |



## 7. Ruby開発環境構築のコマンド × 日本語訳
| コマンド | 意味（わかりやすく言うと） |
|---------|-----------------------------|
| `cd ~` | ホームディレクトリに移動する |
| `mkdir ruby_playground` | Rubyの作業フォルダを作成する |
| `cd ruby_playground` | 作業フォルダに入る |
| `touch Dockerfile` | Dockerの設計図ファイルを作成する |
| `touch docker-compose.yml` | 起動設定ファイルを作成する |
| `code .` | VSCodeでこのフォルダを開く |
| `docker compose build` | 環境を組み立てる（ビルド） |
| `docker compose up` | 環境を起動する（エンジンON） |
| `docker container exec -it ruby_playground bash` | 実行中の環境にログインして操作する |
| `ruby -v` | Rubyのバージョンを確認する |



## 8. ターミナルの表示状態について
| 状態 | 例えるなら… | 表示例 |
|------|----------------------------|--------------------|
| Macターミナル | 工場の外で準備している人 | `k@Macbook ~ %` |
| コンテナ内 | 工場の中で作業している人 | `root@xxxxx:/app#` |

---
🧩 補足
このテンプレートは学習用・開発初期のRuby環境として非常に便利です。
docker-compose.ymlやDockerfileの設定を調整することで、Railsや他のライブラリも柔軟に追加できます。

📝 参考
Docker公式ドキュメント

Qiitaの記事各種（初心者向けDocker環境構築）