Docer & Mysql & Rails APIモード
ローカルにdockerを利用して、RailsのAPIモード環境を構築。
作業ディレクトリ・Gemfileの作成
$ mkdir api-app && cd $_ $ bundle init Writing new Gemfile to /{WORK_PATH}/api-app/Gemfile
Gemfile
$ vim Gemfile
source "https://rubygems.org" gem 'rails', '5.1.4'
Docker
Dockerfile
FROM ruby:2.4.2 RUN apt-get update -qq && apt-get install -y build-essential libmysqlclient-dev RUN mkdir /api-app WORKDIR /api-app ADD Gemfile /api-app/Gemfile ADD Gemfile.lock /api-app/Gemfile.lock RUN bundle install ADD . /api-app
docker-compose.yml
$ vim docker-compose.yml
version: '3' services: db: image: mysql environment: MYSQL_ROOT_PASSWORD: password web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/api-app ports: - "3000:3000" depends_on: - db
※ MYSQL_ROOT_PASSWORD
はerror: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
が発生するため
Rails
rails new
$ docker-compose run web rails new . --api --force --database=mysql --skip-bundle
database.yml変更
$ vim config/database.yml
default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: password host: db
実行
$ docker-compose build $ docker-compose up
db作成
別なターミナルで実行
$ docker-compose run web rake db:create
http://0.0.0.0:3000/ で確認。
参考
プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化
- 作者: 阿佐志保,山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2015/11/20
- メディア: 大型本
- この商品を含むブログ (3件) を見る
- 作者: Adrian Mouat,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/08/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る