環境構築の仕方について簡単にまとめていく。
今回は、
Rails+MYSQL+Dockerの開発環境構築
前提条件
Dockerがインストールされていること
今回のバージョン
ruby 2.6.5
rails 5.2.3
MYSQL 8.0.19
必要なファイルの確認
Dockerfile
Gemfile
Gemfile.lock(空)
docker-compose.yml
以下開発ディレクトリに作成
Dockerfileの作成
Dockerfile
FROM ruby:2.6.5 # 必要なパッケージのインストール RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs # 作業ディレクトリの作成+ルートディレクトリの設定 RUN mkdir /myapp WORKDIR /myapp # Gemfileの追加する COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock # bundle installの実行 RUN bundle install COPY . /myapp
Gemfileの作成
Gemfile
source 'https://rubygems.org' gem 'rails', '5.2.3'
Gemfile.lockの作成
docker-compose.ymlの作成
docker-compose.yml
version: '3' services: # データベースの設定 db: image: mysql:8.0.19 # 認証方法の設定(MYSQL8系) command: --default-authentication-plugin=mysql_native_password environment: # 使用する値を設定 MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: root ports: - "3306:3306" # サーバーの設定 web: build: . command: rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" links: - db
アプリケーションの作成
$ docker-compose run web rails new . --force --database=mysql
database.ymlの修正
config/database.ynl
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root # 以下 docker-compose.ymlで設定した値に変更 password: password host: db
コンテナの起動
$ docker-compose build
コンテナの起動
$ docker-compose up
docker-compose downで停止
データベースの作成
$ docker-compose run web rails db:create
localhost:3000へアクセス
以上で作成完了