Episodes

Resources

Summary

# Terminal
docker build . -t railsapp
docker-compose up
docker-compose start web
docker-compose stop web

# Dockerfile
FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs 
RUN apt-get install libmysqlclient-dev -y
RUN apt-get install sqlite3 -y
RUN apt-get install coffeescript gawk g++ gcc make libreadline6-dev -y
RUN apt-get install libssl-dev libyaml-dev libsqlite3-dev autoconf libgmp-dev libgdbm-dev -y
RUN apt-get install libncurses5-dev automake libtool bison pkg-config libffi-dev -y
RUN mkdir /railsapp
RUN echo 'gem: --no-document' >> ~/.gemrc
EXPOSE 3000
WORKDIR /railsapp
ADD Gemfile /railsapp/Gemfile
ADD Gemfile.lock /railsapp/Gemfile.lock
RUN bundle install
ADD . /railsapp

# docker-compose.yml
version: '2'

services:
  web:
    build: .
    command: bash -c "bundle && bundle exec rake db:create db:migrate db:seed && bundle exec rails s -b 0.0.0.0"
    volumes:
      - .:/railsapp
    ports:
      - 3000:3000
    depends_on:
      - redis
      - mysql
  redis:
    image: redis
    ports:
      - 6379:6379
  mysql:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8
    ports:
      - 3306:3306
    restart: always
    volumes: 
      - ../docker/mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: development
      MYSQL_DATABASE: template_development
      MYSQL_USER: dbuser
      MYSQL_PASSWORD: password
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - 8080:80
    depends_on:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      PMA_USER: dbuser
      PMA_PASSWORD: password