Railsの開発環境を作る002
この記事の開発環境が良かったので自分用にまとめる。Rails で開発する時はこれをベースに必要なもの/不要なものを Dockerfile や docker-compose から足し引きするだけ。
Clone
まずはリポジトリを clone しておく。
code:sh
git clone git@github.com:YuheiNakasaka/docker-rails-basis.git
デフォルトの構成
この環境では下記の構成がデフォルトで作成される。
PostgreSQL + Redis
Rails + Webpacker + sidekiq
基本方針
この環境はdocker-compose upは使わずにdocker-compose up railsなどと具体的に指定して実行する。bundle exec などのコマンドは runner コンテナ内で行う想定。
開発環境の立ち上げ
code:docker-compose.yml
args:
RUBY_VERSION: '2.6.3'
runner を立ち上げる。
code:sh
docker-compose run --rm runner
これで runner 環境にログイン。以下 bundle コマンドの実行は runner 内のシェルで行うものとする。
Railsアプリの作成(初回のみ)
versionは適宜変更する。
code:Gemfile
gem 'rails', '~> 6.1.4'
code:sh
bundle install
bundle exec rails new . --force --no-deps --database=postgresql --webpack=typescript
rails db:create
Railsアプリの起動
code:sh
docker-compose up rails
gem や db の作成は cache されているので 2 回目以降はいきなりこのコマンドを叩くだけでアプリが立ち上がる。
以下は任意の作業
JSファイル置き場所
code:sh
mkdir app/javascript/src
Slim対応
code:Gemfile
gem 'slim-rails' # 追加
code:sh
bundle install
app/views/layouts配下のファイルをslimに変更
code:application.html.slim
doctype html
html
head
title
| Myapp
= csrf_meta_tags
= csp_meta_tag
= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
body
= yield
code:mailer.html.slim
doctype html
html
head
style
| /* Email styles need to be inline */
body
= yield
code:mailer.text.slim
= yield
remote hostからgit pushができない
ssh-keyを作成してgithubに登録しssh-agentをリモートホスト内で実行させるといい感じにやってくれた