Skip to content

Conversation

@nk-ty
Copy link
Contributor

@nk-ty nk-ty commented Jul 3, 2025

No description provided.

nk-ty added 6 commits July 2, 2025 11:26
- 開発環境専用ファイル(Dockerfile.dev、Gemfile.dev)を新規作成
- Ruby 3.2.0 + Rails 7.1.xの組み合わせを開発環境でのみ使用
- 問題のあるgem(bulma-rails、mini_racer、debase、ruby-debug-ide)を開発環境で除外
- MySQLデータ格納をバインドマウントから名前付きボリュームに変更して権限問題を解決
- Bundle cacheボリュームを追加してgem再インストール時間を短縮
- アセットプリコンパイルを開発環境でスキップしてWebpack依存関係エラーを回避
- bulmaインポートを一時的にコメントアウトしてSassエラーを解決
- DockerfileをRUNとCMDに分離してビルド効率とデバッグ性を向上

これによりワンコマンドで開発環境が起動し、localhost:3000でHTTP 200 OKを確認。
本番環境ファイル(Dockerfile、Gemfile、docker-compose.yml)は未変更で影響なし。
DB操作は初回のみ手動実行で、2回目以降は高速起動を実現。
- ENTRYPOINTスクリプトを追加してGemfile.devを実行時に動的適用
- puma.rbで開発環境ではUnixソケットを使用せずTCPポートのみ使用
- Rails定数の代わりに環境変数RAILS_ENVでチェックして初期化エラーを回避

これにより開発環境でのRuby 3.2.0 + Rails 7.1.x環境が安定動作し、
localhost:3000でHTTP 200 OKレスポンスを確認。
本番環境のpuma設定(Unixソケット使用)は維持。
- Ruby 3.2.0→3.1.6に変更してffi gemのSegmentation faultを回避
- bundle installの並列処理を無効化(jobs=1)して安定性向上
- ENTRYPOINTスクリプトでbundle installを実行して依存関係を解決

これにより異なるアーキテクチャのPCでも安定してビルド・実行可能。
Ruby 3.1.6はRails 7.1.xと互換性があり、本番環境への影響なし。
- web_console設定を一時的に無効化(web-console gemとの互換性問題)
- Bullet設定を一時的に無効化(bullet gemがGemfile.devから除外)
- rack-mini-profiler初期化を一時的に無効化(require: false設定との競合)

これにより開発環境でRailsサーバーが正常に起動し、
localhost:3000でHTTP 200 OKレスポンスを確認可能。
本番環境への影響なし。
- yarnインストールを除外してnpm/yarn関連のSegmentation faultを回避
- Node.js 18.19.0のみでwebpackerとの互換性を確保
- SSL証明書問題とapt-key非推奨警告も同時に解決

これにより異なるPC環境でも安定してビルド・実行可能。
開発に必要な機能は全て動作し、localhost:3000でHTTP 200 OK確認済み。
本番環境への影響なし。
- Gemfile.devを削除し、統一されたGemfileに変更
- Ruby 3.1.6、Rails 7.1.0に統一
- 開発環境用エントリーポイントスクリプトを追加
- SECRET_KEY_BASEの動的生成機能を実装
- Docker設定をシンプル化し、運用の複雑さを軽減

変更内容:
- Gemfile: 開発・本番環境で共通利用
- Dockerfile: Ruby 3.1.6に更新
- Dockerfile.dev: エントリーポイント追加、設定簡素化
- dev-entrypoint.sh: SECRET_KEY_BASE自動生成スクリプト
- docker-compose.dev.yml: volume設定最適化
- Gemfile.dev: 削除(統一のため)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants