⭐️爆速でRuby on Railsの環境を作っちゃおう
今人気急上昇中の Docker
そんな流行りに乗りたい人の為に5分で出来る環境構築〜!
- 今まで触ったことが無い人
- これから使って見たい人
- とりあえずすぐにRails環境が欲しい人
そんな人の為の記事になります。
基本コピペでいけます!!!!!!
⭐️目安時間
5分
⭐️前提条件
・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)を構築する手順書