18
17

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

【超爆速】DockerでRailsの環境を作る【5分クッキング】

Last updated at Posted at 2017-10-26

⭐️爆速でRuby on Railsの環境を作っちゃおう

今人気急上昇中の Docker

そんな流行りに乗りたい人の為に5分で出来る環境構築〜!

  • 今まで触ったことが無い人
  • これから使って見たい人
  • とりあえずすぐにRails環境が欲しい人

そんな人の為の記事になります。

基本コピペでいけます!!!!!!

⭐️目安時間

5分

⭐️前提条件

Macで行なっております

Docker for Macだけインストールしておいてください。

Docker for Mac

⭐️レッツクッキング!

(1) 作業場の確保とイメージの取得

プロジェクトの作成
$ mkdir myapp_project
$ cd myapp_project
Docker imageの取得
$ docker pull ruby
$ docker pull mysql

(2) ファイル作成

Dockerファイルの作成

$ vi Dockerfile

Dockerfile
FROM ruby
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir -p /myapp
WORKDIR /myapp
RUN gem install bundler
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install
ADD . /myapp

Gemfileの作成とlock

$ vi Gemfile

Gemfile
source 'https://rubygems.org'
gem 'rails'

$ touch Gemfile.lock

(3) docker-compose.ymlの作成

$ vi docker-compose.yml

docker-compose.yml
version: '3'
services:
  db:
    image: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

(4) Railsアプリの生成

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

Installing nokogiri 1.8.1 with native extensionsが長い…。

(5) ちょっと設定等を変えたり便利なものを詰め込む

Gemfile編

コメントを外してください
gem 'therubyracer', platforms: :ruby
developmentの中に追加してください
group :development do
.....
.....
  gem 'pry-byebug'
end

database.yml編

$ vi config/database.yml

database.yml

// 大体12行目から

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: password
  host: db

(6) さービルドだ!

$ docker-compose build

(7) 最後に立ち上げてdb作成

$ docker-compose up -d
$ docker-compose run web rake db:create

Done!!
アクセス!!

⭐️Docker コマンドメモ

docker-compose run

バージョン確認
# Rubyのバージョンを確認する
$ docker-compose run --rm web ruby -v

# MySQLのバージョンを確認する
$ docker-compose run --rm db mysql --version

# Railsのバージョンを確認する
$ docker-compose run --rm workspace php artisan -v
コマンドを実行する
# rails generateを例にすると
$ docker-compose run --rm web rails generate controller users index

# rails routesをしたい
$ docker-compose run --rm web rails routes

docker cp

コンテナ間のファイル移動
# コンテナ内のファイルをコピーする
$ docker cp {コンテナID}:{ファイルまでのパス} ローカルの保存したい場所

# ローカルのファイルをコンテナにコピーする
$ docker cp ローカルファイルの場所 {コンテナID}:{コンテナの保存したい場所}

docker pull

イメージを引っ張る
$ docker pull ubuntu
バージョンを指定する
$ docker pull ubuntu:12.04

docker run

ホスト名を付けて起動する
$ docker run -h Hoge -i -t ubuntu /bin/bash
コンテナ名を付けて起動する
$ docker run --name Hoge -i -t ubuntu /bin/bash

docker start

コンテナを起動してログインする
$ docker start -a [containerID]

docker rm

コンテナを削除する
$ docker rm [containerID]
複数指定可能
停止中のコンテナを一気に削除する
$ docker container prune

docker images

イメージ一覧を表示する
$ docker images
イメージを削除する
$ docker rmi [imageID]

⭐️その他

これとか参考にしてください
Dockerのtips的な自分のメモ

Laravelもあります
DockerでLaravel(Apache+php-fpm+mysql)を構築する手順書

18
17
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
18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?