1
0

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 3 years have passed since last update.

[Docker][Rails] Dockerを使ってRailsアプリを作る~rails newするまで~

Last updated at Posted at 2019-12-10

今回は初めてDockerを使い、Railsアプリを作っていくことにしました。

手順をメモしておきます。
手順は以下の方を参考にさせていただいております。

[Rails] DockerでRails + MySQLの開発環境をつくる手順

開発環境はmacで、Docker for macをインストール済みです。
1.アプリを置くディレクトリを作る
2.4つのファイルを作る
3.rails new する
4.ブラウザで表示させるまで

1.アプリを置くディレクトリを作る

mkdir matatabi_app(アプリの名前)

まずはアプリを置きたいところにディレクトリ作ります。

2.4つのファイルを作る

Dockerfile docker-compose.yml Gemfile Gemfilelock
この4つのファイルをmyappの下に作っていきます

vi Dockerfile

中身はこのように書きました。

FROM ruby:2.4.1
ENV LANG C.UTF-8

RUN apt-get update -qq
RUN apt-get install -y build-essential
RUN apt-get install -y libpq-dev
RUN apt-get install -y nodejs

RUN mkdir /matatabi_app
WORKDIR /matatabi_app

ADD Gemfile /matatabi_app/Gemfile
ADD Gemfile.lock /matatabi_app/Gemfile.lock

RUN gem install bundler
RUN bundle install
ADD . /matatabi_app

続いてdocker-compose.ymlを書いていきます

vi docker-compose.yml
version: "3"

services:
  web:
    build: .
    ports:
      - "3000:3000"
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/matatabi_app
    depends_on:
      - db
  db:
    image: mysql
    environment:
      MYSQL_USER: root
      MYSQL_ROOT_PASSWORD: ***(passwordを書く)
    ports:
      - "3306:3306"
    volumes:
      - ./db/mysql/volumes:/var/lib/mysql

次に、Gemfileを作成

vi Gemfile
source 'https://rubygems.org'
gem 'rails', '5.1.7'

Gemfile.lock は作成のみです。

touch Gemfile.lock

これで、4つのファイルができました。lsなどして確認しておきます。

3.rails new する

rails newしようと、以下のコマンドを打ってもうまくいきませんでした。

docker-compose run web rails new . --force --database=mysql

いろいろと調べ、一旦dockerを立ち上げてrails newすることにしました。

docker-compose up
rails new . --force --database=mysql --skip-bundle
docker-compose build

うまくいきました。

4.ブラウザで表示させるまで

rails newすることでいろいろとファイルが増えました。
その中にある database.ymlを編集します。

-----途中省略-------------------
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root ←docker-compose.ymlで書いたusernameを記入
  password: *** ←docker-compose.ymlで書いたpasswordを記入
  socket: /tmp/mysql.sock
  host: db

-----途中省略-------------------

再度dockerを起動します。

docker-compose up 

 2019-12-10 23.43.34.png

このような表示が出れば、OKです。
localhost:3000にアクセスすると
Yay! you are on railsが表示されています!!

ここからbundle install などしていくのですが、エラーにはまってしまったので
次回に回します!
以上です!

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?