DockerでRails環境構築

webチーム運用の田島です。今回はRailsの実行環境をDockerで作っていきます。

ディレクトリ作成

作業ディレクトリを作成します。以下のコードでrailsというディレクトリを作ります。

->$ mkdir rails

そしてこのディレクトリ内に以下のファイルを置いていきます

rails

-Dockerfile

-docker-compose.yml

-Gemfile

-Gemfile.lock

ファイルの作成方法は

->$ touch Dockerfile

->$ touch docker-cmpose.yml

touchコマンドを用いて作成します。

Gemfile

Gemfileを書いていきます。

→source "https://rubygems.org"
→gem "rails", "6.1.4"

Gemfile.lock

Gemfile.lockはなにも書かなくてもよいです。

Dockerfile

Dockerfile

FROM ruby:3.0.2

RUN curl https://deb.nodesource.com/setup_12.x | bash

RUN curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

RUN apt update && apt install -y nodejs yarn vim

RUN mkdir /myapp

WORKDIR /myapp

COPY Gemfile /myapp/Gemfile

COPY Gemfile.lock /myapp/Gemfile.lock

RUN bundle install

COPY . /myapp

以上がDockerfileに書き込む内容です。

docker-compose.yml

docker-compose.yml

version: '3'

services:
db:
image: mysql:8.0.26
environment:
MYSQL_ROOT_PASSWORD: tajima
ports:
- "3307:3307"
volumes:
- data:/var/lib/mysql

web:
build: .
command: "bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp/
ports:
- 3000:3000
depends_on:
- db

volumes:
data:
以上がdocker-compose.yml

実行

次にrailsをインストールします。

→docker-compose run web rails new . -f -d mysql

これを実行しますとGemfileが更新されます。

コンテナをbuildします

→docker compose build

config/database.ymlを編集します。

database.ymlは

→docker compose exec web bash

でコンテナ内に入りそこのconfigディレクトリの中にあるdatabase.ymlを編集します。

database.yml

編集しましたら

→docker compose up -d

でコンテナを起動します。

DBを作成します。

→docker compose exec web rails db:create

最後にhttp://ipadress:3000にアクセスします。

これが出れば成功です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です