🛤️
M1 Mac Rails on Dockerを成功させる
作成日:
2022/01/02
1
Railsダウングレード+MySQL+MacM1でDocker環境を構築する
ひとつひとつ仕様を丁寧に確認していなかったのが悪く、過去8回くらい失敗していたがついに成功した
教訓「急がばドキュメントを読め」
Codes
Gemfile
source 'https://rubygems.org'
gem 'rails', '5.2.6'
Dockerfile
FROM ruby:2.7.2 # FROM: Rubyバージョン
RUN apt-get update -qq && apt-get install -y build-essential nodejs指定 # RUN: コンテナー内で実行するコマンド。ubuntuでパッケージのインストール。
RUN mkdir /app # RUN: Dockerのルートディレクトリで /app(Rails)フォルダーを作成
WORKDIR /app # WORKDIR: 作業ディレクトリを/appに移動
COPY Gemfile /app/Gemfile # COPY: Gemファイルのコピー/移動
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install # RUN: install
COPY . /app # COPY: Dockerファイル内の内容をすべてコピー
docker-compose.yml
version: '3' # フォーマット
services:
web: # ====== Railsコンテナの定義 ======
build: . # 同階層のDockerfileからイメージを使用する
command: bundle exec rails s -p 3000 -b '0.0.0.0' # 起動時のコマンド -p サーバー -b IPアドレス
volumes:
- .:/app # LocalとDockerの共有パス/接点
ports:
- 3333:3000 # く公開するポート番号>:くコンテナ内部の転送先ポート番号〉 => http://localhost:3333/
depends_on:
- db # 起動時にMySQLサーバーが先に起動する
tty: true # debug用
stdin_open: true # debug用
db: # ====== MySQLサーバーコンテナの定義 ======
platform: linux/arm64/v8 # Mac M1対応
image: mysql:5.7 # そのまま
volumes:
- db-volume:/var/lib/mysql # PC上にdb-volumeという名前でボリューム(データ保持領域)を作成。コンテナ上でDBを持たせず、PCローカルにDBを保存させる
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
db-volume: # 上記の定義
GitBook
https://atit.gitbook.io/rails/rails-note/rails-kai-fa-huan-jing/rails-on-docker-fur
フロントエンド&デザインエンジニア / UIUXデザイナー / Webマーケター / アクセリビリティエンジニア