Dockerをインストール済みで、todoというアプリを作成する前提で以下を進める。
Dockerfileを作成する
Dockerfile
#
FROM ruby:2.6.3-stretch
RUN gem install rails
RUN apt-get update && apt-get install -y nodejs
docker-compose.ymlを作成する。
docker-compose.yml
version: "3"
services:
mysql:
image: mysql:8.0.13
command: --default-authentication-plugin=mysql_native_password
volumes:
- "./mysql-data:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: root
# コンテナの名前
app:
# Dockerfileの内容を元にビルドさせる
build: .
volumes:
- ".:/app"
ports:
- "3000:3000"
tty: true
depends_on:
- mysql
コンテナの作成と開始を行う
以下のコマンドを叩くことで、docker-composeファイルに定義したコンテナの作成と開始をしてくれる。
$ docker-compose up
Dockerを操作する
以下のコマンドを叩くことで、Dockerの中に入れる。
$ docker exec -it todo_app_1 /bin/bash
root/# ls
app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root/# cd app
root/app# ls
Dockerfile docker-compose.yml mysql-data
railsをインストールする。
root/app# gem install rails
Successfully installed rails-5.2.3
1 gem installed
アプリの雛形を作成する。
root/app# rails new .
root/app# bundle install
サーバーを起動する
root/app# rails s -b 0.0.0.0
http://localhost:3000 にアクセスすると、Railsアプリが立ち上がる。
めでたし、めでたし!