rails7 Ubuntuを使っています。
Gemfile
gem "rails", "~> 7.0.6"
Dockerfile
FROM ruby:3.1
# 公式→https://hub.docker.com/_/ruby
# Rails 7ではWebpackerが標準では組み込まれなくなったので、yarnやnodejsのインストールが不要
# ruby3.1のイメージがBundler version 2.3.7で失敗するので、gemのバージョンを追記
ARG RUBYGEMS_VERSION=3.3.20
# RUN:任意のコマンド実行
RUN mkdir /myapp
# WORKDIR:作業ディレクトリを指定
WORKDIR /myapp
# COPY:コピー元とコピー先を指定
# ローカルのGemfileをコンテナ内の/app/Gemfileに
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
# RubyGemsをアップデート
RUN gem update --system ${RUBYGEMS_VERSION} && \
bundle install
COPY . /myapp
docker-compose.yml
version: '3'
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
ports:
- '3306:3306'
command: --default-authentication-plugin=mysql_native_password
volumes:
- mysql-data:/var/lib/mysql
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
stdin_open: true
tty: true
volumes:
mysql-data:
driver: local
コマンド
docker-compose run --rm web rails new . --force --database=mysql