構成
Docker Composeを使って、Ruby on Rails、データベースにはMySQL互換のMariaDB、データベース編集のためのphpMyAdmin、オブジェクトストレージのminioの4つをまとめて立ち上げるようにしています。
ファイル構成
任意のディレクトリ(フォルダ)を/とすると
/src
/compose.yaml
/Dockerfile
という感じの配置。srcにはRailsアプリが入ります。
ファイル記述
compose.yaml
services:
app:
build: .
tty: true
stdin_open: true
environment:
RAILS_ENV: development
working_dir: /app
volumes:
- ./src:/app
ports:
- '3000:3000'
depends_on:
- db
- minio
command: >
bash -c "rm -f /app/tmp/pids/server.pid &&
rm -f /app/public/assets &&
gem cleanup &&
bundle install -j4 &&
rails s -b 0.0.0.0"
minio:
image: minio/minio:latest
tty: true
stdin_open: true
environment:
MINIO_ROOT_USER: 'minioroot'
MINIO_ROOT_PASSWORD: 'minioroot'
volumes:
- minio-vol:/data
ports:
- '9000:9000'
- '9001:9001'
command: server /data --console-address ":9001"
db:
image: mariadb:latest
tty: true
stdin_open: true
environment:
TZ: 'Asia/Tokyo'
MARIADB_ROOT_PASSWORD: 'mdbroot'
volumes:
- db-vol:/var/lib/mysql
ports:
- '3306:3306'
phpmyadmin:
image: phpmyadmin:latest
tty: true
stdin_open: true
environment:
PMA_HOSTS: 'db'
ports:
- '8080:80'
depends_on:
- db
volumes:
db-vol:
minio-vol:
Dockerfile
FROM ruby:3.2.3
RUN apt-get update && apt-get install -y build-essential imagemagick libvips ffmpeg
RUN gem i -v 7.1.3 rails
構築
シェルにて
docker compose run app rails new . --database=mysql
docker compose down
これでRailsアプリが作成されました。
DBと接続するために、/src/config/database.ymlのusername、passwordなどを編集してください。
docker compose up --build -d
これで開発サーバーが立ち上がりました。http://localhost:3000/ にブラウザからアクセスするとRailsの最初の画面が見えます。お疲れ様でした。
コメントを残す