【Rails6.0.0.rc1】rails6のrc版が出たので遊ぶ準備をしてみた
概要
- rails6.0が今春出ると聞いていましたが、平成最終出社までには来なかったみたい。
- おとといrc版がリリースされていたので、ウォーミングアップでもしておこうかなと
- 新卒組にもdockerのいいところを紹介したいので準備体操まで。。。どちらかというと新卒教育用かな。
- dockerで気軽に遊んでみる程度のものです。
-
こちらの記事は走り書きなので後ほど更新入れます。- 以下の投稿をしたので、もうこの記事更新しません。
- 【Rails】Rails6系とMySQL8系の組み合わせの開発環境をDockerだけでつくる
前提
- docker使います。rubyのあるぱいんのイメージ使います。
やってみた
- 以下dockerコマンドで遊んだ跡です。
- この辺を後々、Dockerfileにまとめたりネットワーク設定したりしよう。(→ネットワーク追加しました。2019/05/09)
- dockerネットワークの作成
- DB接続などの演習もしたいので専用ネットワークを作成しておく
# ネットワークの名前を宣言しておきましょう。
MY_NETWORK_NAME="(任意のネットワーク名)"
docker network create \
--driver bridge \
${MY_NETWORK_NAME}
# 作成できたか確認
docker network ls
- DBコンテナの用意(例)
- せっかくなのでMySQL8.0系を使いましょう。
# ユーザーのパスワードなどを決めておきましょう。
MYSQL_ROOT_PASSWORD="(大文字小文字記号数字)"
MYSQL_PASSWORD="(大文字小文字記号数字)"
# MySQLコンテナ名
MYSQL_CONTAINER_NAME="(任意のコンテナ名)"
# コンテナ作成。(コマンド追加で認証方式は従来のパスワード方式にしておく。)
docker run \
--detach \
--env MYSQL_DATABASE=app_development \
--env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env MYSQL_USER=app \
--env MYSQL_PASSWORD=${MYSQL_PASSWORD} \
--env TZ="Asia/Tokyo" \
--name ${MYSQL_CONTAINER_NAME} \
--net ${MY_NETWORK_NAME} \
--tty \
mysql:8.0 \
mysqld --default-authentication-plugin=mysql_native_password
# 確認
docker exec -it ${MYSQL_CONTAINER_NAME} mysql -u root -p
Enter password:
mysql> -- DB作成がされているかを確認
mysql> show databases;
- Rails6.0のコンテナを作成
# Railsコンテナ名
RAILS_CONTAINER_NAME="(任意のコンテナ名)"
# rubyのコンテナを作成。
# (オプションなどは弊社でよく使う設定になっています)
docker run \
--detach \
--env APP_DATABASE_PASSWORD=${MYSQL_PASSWORD} \
--env APP_DATABASE_USER=app \
--env BUNDLE_APP_CONFIG=/app/.bundle \
--env TZ="Asia/Tokyo" \
--name ${RAILS_CONTAINER_NAME} \
--net ${MY_NETWORK_NAME} \
--tty \
--workdir /app \
ruby:2.6-alpine
# いつものように必要なパッケージをインストールしていきます。
docker exec -it ${RAILS_CONTAINER_NAME} apk update
docker exec -it ${RAILS_CONTAINER_NAME} apk upgrade
# みんな大好きnokogiri用のパッケージたち
docker exec -it ${RAILS_CONTAINER_NAME} apk add --no-cache build-base libxml2-dev libxslt-dev
# DBパッケージ追加。mysqlに変える想定で。
docker exec -it ${RAILS_CONTAINER_NAME} apk add --no-cache mysql-client mysql-dev
# yarnも入れましょう。webpackerで使いそうなので。(タイムゾーンデータもいるらしい)
docker exec -it ${RAILS_CONTAINER_NAME} apk add --no-cache yarn tzdata
docker exec -it ${RAILS_CONTAINER_NAME} yarn install
# 使い捨てのGemfileでRailsのバージョンを指定しましょう
docker exec -it ${RAILS_CONTAINER_NAME} vi Gemfile
# Gemfile内容は以下のように作成
1 # frozen_string_literal: true
2
3 source "https://rubygems.org"
4 git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5 gem "rails", "6.0.0.rc1"
# bundlerの設定をちまちま
docker exec -it ${RAILS_CONTAINER_NAME} bundle config --local path vendor/bundle
docker exec -it ${RAILS_CONTAINER_NAME} bundle config --local build.nokogiri --use-system-libraries
# 確認
docker exec -it ${RAILS_CONTAINER_NAME} bundle env
# rails6.0.0.rc1 をインストールだ!!
docker exec -it ${RAILS_CONTAINER_NAME} bundle install --path vendor/bundle
# 確認
docker exec -it ${RAILS_CONTAINER_NAME} bundle exec rails --version
> Rails 6.0.0.rc1
# プロジェクト新規作成。さっき作ったGemfileは上書きさせよう。
docker exec -it ${RAILS_CONTAINER_NAME} bundle exec rails new . --database mysql --force
# DB接続の設定
docker exec -it ${RAILS_CONTAINER_NAME} ls -lahF /app/config/
docker exec -it ${RAILS_CONTAINER_NAME} vi /app/config/database.yml
# お試しなのでdevelopment環境の部分を編集する。
20 development:
21 <<: *default
22 database: app_development
23 username: app
24 password: <%= ENV['APP_DATABASE_PASSWORD'] %>
25 host: "MySQLのコンテナ名"
# 早速ためそうぜ!! →→→→6.0から導入されたメソッドが使える!!!!
docker exec -it ${RAILS_CONTAINER_NAME} bundle exec rails console
# Running via Spring preloader in process 1327
# Loading development environment (Rails 6.0.0.rc1)
irb(main):001:0> 'いろはにほへとちりぬるを'.truncate_bytes(25)
=> "いろはにほへと…"
# サーバー立ち上げもできるよ!!
docker exec -it ${RAILS_CONTAINER_NAME} bundle exec rails server
# アクセスできました!!
docker exec -it ${RAILS_CONTAINER_NAME} wget -O - localhost:3000
# Connecting to localhost:3000 (127.0.0.1:3000)
# <!DOCTYPE html>
# <html>
# <head>
# <title>Ruby on Rails</title>
# ...
# とりま今日はここまで。
これからやること
- Dockerfile化
-
DBコンテナの用意(2019/05/09追記) - docker-compose化
- 新卒組への説明会
Author And Source
この問題について(【Rails6.0.0.rc1】rails6のrc版が出たので遊ぶ準備をしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/nagait84/items/65ccb7bc6e9217396255著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .