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
![](https://www.f-answer.com/wp-content/uploads/2022/06/image-6.png)
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
![](https://www.f-answer.com/wp-content/uploads/2022/06/image-7.png)
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を編集します。
![](https://www.f-answer.com/wp-content/uploads/2022/06/image-8.png)
編集しましたら
→docker compose up -d
でコンテナを起動します。
DBを作成します。
→docker compose exec web rails db:create
最後にhttp://ipadress:3000にアクセスします。
![](https://www.f-answer.com/wp-content/uploads/2022/06/image-9.png)
これが出れば成功です。