LoginSignup
11
7

More than 1 year has passed since last update.

Windows WSL Docker Rails7 環境構築

Last updated at Posted at 2023-03-14

Windows Terminalをインストール

WSL 2 機能を有効にする

Windows Terminallを起動して、「∨」を押す
image.png

Windows PowerShellでCtrlを押しながら [管理者として開く]
image.png

下記のコマンドを入力してから、PCを再起動します。

$ wsl --install

Ubuntuの設定

PC再起動後、Windows Terminallを起動すると
Terminalの種類に、Ubuntuが追加されていことを確認してください。

image.png

Ubuntuをクリックし、ターミナルを変更してください。これ以降、すべてのコマンドはUbuntu上で行います。
また、初回の起動時に、パスワードの入力を求められます。任意のパスワードを設定してください。
画面上ではセキュリティ上、表示されませんが、裏で入力されているので画面に変化がなくても問題ありません。
エラーが起きた場合は、英語で理由が書いてあるので、翻訳などを利用し、落ち着いて読んで解決してください。

また、Windows terminalの最初に開くものをUbunntuに変更しておきましょう。
「∨」を押し、下から、三つ目の「設定」を開いて、既定のプロファイルをUbuntuに変更してください。
image.png

image.png

余談

色を変えたい場合は「配色」から変更できます。
個人的には黒がかっこよくて好きです。
image.png

Docker Desktop for Windowsのインストール

以下のサイトからダウンロードしてください。

image.png

GitHubの登録

こちらからサインアップしてください。
すでにアカウントを持っている人は、サインインしてください。

GitHubのアクセストークンの取得

下記にアクセス

左側のメニューからPersonal access tokensからtokensに移動
image.png

Generate new token(class)をクリック
image.png

No expirationとrepoを選択(Noteは任意の文字列を入力)
image.png
下まで移動して、「Genarate token」

image.png
作成されたトークンは忘れないようにコピペして、保存しておいてください。あとで使います。
もし、コピーし忘れた場合は、再度作成してください。

Gitのダウンロード

Ubuntuになっていることを確認して、実行

$ sudo apt install -y git

Gitがダウンロードできたか確認

$ git --version

何かしらの数字が表示できればOK
image.png

テンプレートをGitHubからcloneしてくる

$ git clone https://github.com/ryanwi/rails7-on-docker.git hello_app

この際にGitHubに登録したユーザー名と、アクセストークンの入力を求められるので入力
※アカウントのパスワードではないので気を付けてください。

Dockerの起動

Docker Desktop for Windowsが起動していることを確認してください。
この画面が表示されていたら問題ありません。
image.png

また、右上の歯車マークのところから設定に入って、
「Use the WSL 2 based engine」にチェックが入っているか確認してください。
image.png

もし入っていなかった場合は、チェックを付けて、右下の「Apply & restart」を押してください。

Docker imageのbuildとsetup

Windows terminalにて、以下のコマンドを順番に実行してください。
三つ目と四つ目のコマンドが時間かかります。気長に待ってください。
※Windows terminalを途中で閉じてはいけません。

$ cd hello_app
$ cp .env.example .env
$ docker compose build
$ docker compose run --rm web bin/rails db:setup

Railsの起動

$ docker compose up

http://localhost:3000/にてアプリケーションが表示されれば完了
image.png
いろいろなボタンをさわって、動かしてみても問題ありません。

終了する際は、Ctrl + Cでコマンド入力できるようになり、以下のコマンドで終了できます。

$ docker compose down

image.png

もしくは、Docker Desktopから、Deleteを押して、削除してください。
この削除は、コンテナの削除であり、ファイル等は削除されませんので気楽に削除してください!
image.png
※この作業をしないまま電源を落としたりするとエラーの原因になるのでお忘れなく。

以上で環境構築は完了です。

Railsコマンドの実行

Dockerで環境構築した場合は、コンテナに対して、Railsコマンドを実行しなければいけません。
Ubuntu上でのRailsコマンドは実行できないので気を付けてください。
コンテナに対して実行する方法は2つあります

①docker runをRailsコマンドの前につける

-d(デタッチドモード)を付けることで、ターミナルを使える状態でRailsを起動できます。

 $ docker compose up -d

rails cの起動

$ docker compose run --rm web bin/rails c

image.png
rails cを終了するときは

$ exit

デタッチドモードのコンテナも終了します。

$ docker compose down

②コンテナ内に入ってRailsコマンドを実行する

bashを起動させることで、連続でRailsコマンドを実行できます。

$ docker compose up -d
$ docker compose run --rm web bash

image.png

この状態であれば、素の状態でRailsコマンドを実行できます。

$ rails db:reset
$ rails routes

コンテナから抜け出す時は

$ exit

デタッチドモードのコンテナも終了します。

$ docker compose down

一度きりの実行であれば①を、複数連続で実行する場合は②の方法を選択するとよいでしょう!

まとめ

WSLとDockerをつかうと、環境差分を減らせるため、特定環境に起因するエラーも減らすことができます。
ぜひ使いこなしてください!
もし、不備や、誤謬がありましたら、ご指摘いただけますと幸いです。

参考サイト

11
7
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
11
7