Rails6のDocker作成(途中)

DockerFileとDockerCompose

  • vi Dockerfile
FROM ruby:2.6.0
ENV LANG C.UTF-8

RUN apt-get update -qq && apt-get install -y \
    build-essential \
    nodejs \
 && rm -rf /var/lib/apt/lists/*

RUN gem install bundler

WORKDIR /tmp
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install

ENV APP_HOME /myapp
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
ADD . $APP_HOME
  • vi docker-compose.yml
version: '3'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
      - bundle:/usr/local/bundle
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
    ports:
      - '3306:3306'
    volumes:
      - mysql_data:/var/lib/mysql
volumes:
  bundle:
  mysql_data:

Gemfile作成方法

  • vi Gemfile
source 'https://rubygems.org'
gem 'rails', '~> 6.0.0.rc1''
touch Gemfile.lock

実行

  • Dockder起動
docker-compose run web bundle exec rails new . --force --database=mysql --skip-bundle