LoginSignup
0
1

More than 3 years have passed since last update.

Railsデプロイ with Docker

Posted at

参考サイト

Docker超入門 :きよとのプログラミング大学

参照

Rails環境構築 with Docker
こちらでDockerを使用したRailsの環境構築までを行っております。

Docker 用語とコマンド
Dockerについての用語やコマンドについてはこちらをご覧ください

環境

Mac OS
docker-compose 1.27.4
heroku/7.47.7
Mysql 8.0
ruby 2.7
rails 6.1.0

heroku実装

herokuログイン

terminal.
rails_on_docker % heroku login
heroku: Press any key to open up the browser to login or q to exit:  //Enterキーでログイン
rails_on_docker % heroku container:login

herokuアプリ作成

terminal.
rails_on_docker % heroku create <rails-koumori>  // < >内は任意の名前を指定

データベース追加・設定

データベースの追加

terminal.
rails_on_docker % heroku addons:create cleardb:ignite -a rails-koumori 

本番環境の接続先情報を環境変数に修正

database.yml
production:
  <<: *default
  database: <%= ENV['APP_DATABASE_DATABASE'] %>
  username: <%= ENV['APP_DATABASE_USERNAME'] %>
  password: <%= ENV['APP_DATABASE_PASSWORD'] %>
  host: <%= ENV['APP_DATABASE_HOST'] %>

接続先情報を環境変数に設定

terminal.
rails_on_docker % heroku config -a rails-koumori
CLEARDB_DATABASE_URL: mysql://ユーザー名:パスワード@ホスト名/データベース名?reconnect=true

rails_on_docker % heroku config:add APP_DATABASE='データベス名'-a rails-koumori
rails_on_docker % heroku config:add APP_USERNAME='ユーザー名' -a rails-koumori
rails_on_docker % heroku config:add APP_PASSWORD='パスワード' -a rails-koumori
rails_on_docker % heroku config:add APP_HOST='ホスト名' -a rails-koumori

rails_on_docker % heroku config -a rails-koumori  //登録の確認

本番環境用の記述

空のファイル作成

terminal.
rails_on_docker % touch start.sh  
start.sh
#!/bin/sh

# 本番環境
if [ "${RAILS_ENV}" ="production" ]
then
    bundle exec rails assets:precompile
fi

bundle exec rails s -p ${PORT:-3000} -b 0.0.0.0

Dockerfileの追記

Dockerfile
# ベースイメージの指定
FROM ruby:2.7

#追記
ENV RAILS_ENV=production  
.
.
.
.

#dockerにコピー
COPY start.sh /start.sh  
#実行権限を付与
RUN shmod 744 /start.sh  
#起動時に実行
CMD ["sh","/start.sh"]   

本番環境に適用

terminal.
rails_on_docker % heroku config:add RAILS_SERVE_STATIC_FILES="true" -a r
ails-koumori  //本番環境にassets:precompileを適用

rails view画面実装

コントローラー作成

terminal.
rails_on_docker % docker-compose exec web bundle exec rails g controller users 

トップページにusers/indexを指定

routes.rb
Rails.application.routes.draw do
  get '/',to: "users#index"
end

コントローラーの記述

users.controller.rb
class UsersController < ApplicationController
  def index
  end
end

index.html.erbファイルを作成し記述

src>app>views>users>index.html.erb
<h1>Hello world!</h1>

Dockerコンテナのプッシュとherokuへのリリース

Dockerイメージをビルドしコンテナにプッシュ

terminal.
rails_on_docker % heroku container:push web -a rails-koumori

herokuにコンテナをリリース

terminal.
rails_on_docker % heroku container:release web -a rials-koumori

herokuを起動しブラウザで確認

terminal.
rails_on_docker % heroku open -a rails-koumori

スクリーンショット 2021-01-10 18.13.47.png

まとめ

前回のRails構築から、今回でデプロイまで完了できました。

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