今回はPostgreSQL+RailsのサンプルアプリケーションをDocker環境で動かすまでの手順についてまとめました。この記事では2022年1月6日現在の最新バージョンである、Ruby3.1.0/Rails7.0.1で構築作業を進めていきます。MySQLでの環境構築方法は以下の記事を参考にしてください。【MySQL】RailsアプリケーションをDocker環境下で動かすまでの手順を解説MySQL+RailsのサンプルアプリケーションをDocker環境で動かすまでの手順についてまとめています。この記事では、2022年9月19日の最新バージョンであるRuby3.1.2/Rails7系で構築作業を進めています。始めにこの記事の手順は以下のDockerクイックスタートガイドを参考に進めています。RailsゴールRailsのデモ画面を表示することを今回の実装のゴールに設定します。Macをインストールする必要があります。以下の記事を元にインストールを進めましょう。Macのインストール手順についてまとめています。インストールのみで完了する作業ですので、ダウンロード時間を除くと1分前後で設定することができます。...開発フォルダの作成まずはRailsアプリケーションとDockerの設定ファイルを格納するディレクトリを作成します。今回はDesktop配下にdocker_demoというディレクトリを作成していますが、ディレクトリの配置場所やディレクトリ名は適宜変更してください。docker_demoディレクトリ名を変更した場合は、以降に登場するディレクトリ名も忘れずに変更してください。続いて、アプリケーションをビルドするために必要なDockerfileを作成します。DockerfileDockerfileはアプリケーションのビルドに必要な設定が書かれたファイルです。言うと、アプリケーションを動作させるサーバーなどの情報が記載されたファイルになります。先ほど作成したDockerfileに以下の記述を追加します。ruby:3.1.0を記載します。次にRailsの読み込み専用Gemfileを作成します。'7.1.0'を記載します。newによって上書きされます。newの段階でエラーが吐き出されてしまいます。2022年1月6日にリリースされたRails7.0.1(もしくはそれ以降のバージョン)を指定するようにしましょう。releasedGemfile.lockの作成Dockerfileをビルドするため、空のGemfile.lockを作成します。Gemfile.lockentrypoint.shの作成Rails特有の問題「既にserver.pidファイルが存在してしまうことで、サーバーを再起動できない問題」を解決するファイルであるentrypoint.shを作成します。entrypoint.sh作成したentrypoint.shに以下の記述を追加しましょう。このスクリプトはコンテナを起動する度に実行されます。次にアプリケーションを構成するサービス一覧を記載し、それらを一括で実行してくれるdocker-compose.ymlを作成します。docker-compose.yml拡張子は.yamlでも問題ありません。作成したdocker-compose.ymlにdbとwebの2つを記載します。今回dbではPostgreSQLを指定します。dbdb/web以外の名称でも構いませんが、基本的にデータベース情報はdb、ウェブアプリケーションはwebと記載します。・depends_on:コンテナの実行順序の指定(今回はdb起動→web起動)Railsアプリケーションの作成ここでRailsの新規アプリケーションを作成します。newで作成した新規アプリケーションのGemfileを更新するため、ビルドを実行します。buildでビルドが実行されます。builddatabase.ymlの編集デフォルトではRailsはlocalhost上でDBが動作してしまうため、先ほど記述したDBコンテナを動作先に指定しましょう。config/database.ymlのdefault部分を以下のように編集します。以下のコマンドでDBを立ち上げます。'docker_demo_test'アプリケーションの起動ここまででDockerの設定を一通り終了しました。upでアプリケーションを立ち上げましょう。up動作確認これでDocker環境下でRailsを動かす手順が完了しました。あとはhttp://localhost:3000/にアクセスし、以下のようなデモ画面が表示されれば成功です。released今回はRuby3.1.0/Rails7.0.1のサンプルアプリケーションをDocker環境で動かすまでの手順についてまとめました。基本的にはチュートリアル通りですので、ご自身でも試しに取り組んでみてはいかがでしょうか。m...Railsエンジニアちばよしはる銀座にあるヘルステック企業のRailsエンジニア。初心者から中級者向けに記事を更新しています。お酒とカレーと競馬が好き。TechTechMedia。