Docker環境構築(Rails)②
devdevdev.hatenablog.com
基礎編はこちら
前回作ったコンテナ上にrailsの実行環境を作っていきますよー
ホスト側は一切汚しません。
とりあえずね
$ docker-compose run app bundle init
app/Gemfileが生成されるよ
Gemfileを編集
デフォルトはこう
# frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # gem "rails"
最後の行を以下のように書き換えます
gem 'rails', '5.1.4'
docker-compose.ymlの編集
appの下に以下を追記
environment: RAILS_ENV: development
app / volumesの下に以下を追記
- bundle:/usr/local/bundle
appの一番下に以下を追記
command: /bin/sh -c 'mkdir -p tmp/sockets/ && bundle exec puma -C config/puma.rb'
一番下に以下を追記
volumes: bundle:
Dockerfileの編集
docker/app/Dockerfileに以下を追記
RUN apt-get update && apt-get install -y nodejs ADD ./app/Gemfile* $APP_ROOT/ RUN bundle install
ビルド
$ docker-compose build
railsアプリケーション作成
appにsshではいる
$ docker-compose run app bash
普通に作る
$ rails new . -d mysql
Gemfileを上書きしていいか聞かれるので「Y」
app/config/database.yml書き換え
development: password: password
app/config/puma.rbに以下を追記
app_root = File.expand_path("../..", __FILE__) bind "unix://#{app_root}/tmp/sockets/puma.sock"
ビルドして起動
$ docker-compose build $ docker-compose up
http://localhost/にアクセスしてrailsの画面が表示されればおk。