0
1

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.

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?