>プログラミングDockerでRails+PostgreSQLの環境構築を解説2019年7月19日こんにちは、Nanayakuです。Rails」について解説していきます。最後に環境構築する前にDockerをインストールしましょう。参考DockerをMacにインストールするプロジェクトの定義アプリケーションのディレクトリ・ファイルを作成します。ディレクトリを作成する場所はどこでも大丈夫です。私はデスクトップに作成しました。「Dockerfile」とは、コンテナイメージを自動作成する手順をまとめたファイルのことです。以下のコマンドで作成できます。Dockerfileこのコマンドで、ファイルの作成と編集ができます。編集した後の「:wq」このコマンドで保存・終了することが出来ます。参考viの基本操作Dockerfileには拡張子をつけません。他のファイルも同じで、拡張子がついていないものはそのままで大丈夫です。Dockerfileには↓の設定を定義します。"0.0.0.0"]Dockerfileの主要な命令FROM作成するDockerイメージのベースとなるイメージを指定します。今回の場合は「rubyのversion2.5」を指定しています。他にもPHP、MySQLなどあり、DockerHubから選択します。参考DockerHub(Ruby)RUNDockerのビルド(イメージの作成)時に、Docker内で実行するコマンドを定義します。CMDRUNと似ていて、こっちらもビルド時のDocker内で実行するプロセスを定義します。RUNとCMDの違いは、RUNはアプリケーションの更新や配置を行い、CMDはアプリケーションそのものを動作させます。COPYDockerを動作させるためのファイルやディレクトリを、Dockerコンテナ内にコピーします。ENTRYPOINTコンテナ内で最初に動作するコマンドを指定します。installを実行することを定義しています。installGemfileの作成Gemfileを作成したら、下記を定義します。'~>5'Gemfile.lockは空のまま作成します。"$@"このファイルはコンテナが起動した時、最初に実行されるコマンドを定義しています。dbdocker-compose.ymlは、複数のコンテナを実行するためのファイルです。この場合は、データベースとrailsのコンテナを連携させ実行しています。以下のコマンドを実行します。--database=postgresql「run」はイメージ・コンテナに対して1回のみ実行するコマンドです。newを1回のみ実行することを表しています。run「--force」は、「強制的に」と言う意味があります。「--no-deps」は、runコマンドでリンクされたコンテナを起動させない命令です。--database=postgresql」は、リンクされたデータベースの「postgresql」を起動させないと言う意味です。-lこのコマンドで、生成されたファイル一覧を確認できます。newで新しく「Gemfile」が生成されたので、もう1度buildする必要があります。上記でアプリを起動することが出来るようになりましたが、railsとデータベースのコンテナが連携されていません。そのため、railsのデータベースのデフォルト設定を変更しなければなりません。「config/database.yml」の内容を以下の内容に書き換えます。myapp_testこれで、アプリを起動できます。起動には以下のコマンドを実行します。upうまくいくと画像のようになります。これでrailsとデータベース(postgresql)のコンテナを連携させられましたが、データベースは作成されていません。そこで、新しくターミナルを開き、以下のコマンドを実行します。db:createこれで開発環境の構築は完了です。「http://localhost:3000」で、Railsのウェルカムページが表示されるはずです。webにアクセスすると、画像のようになります。コンテナ(アプリケーション)は以下のコマンドで停止します。down再起動アプリケーションを再び起動するには、もう1度upコマンドを実行します。Rails最後に今回作成したサンプルをGitHubにアップしています。https://github.com/sabakan789/rails_sample備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。関連記事DB設計の準備段階でやる事こんにちは、Nanayakです。今回はDB設計を実際にやってみて、自分の思っていたのと大幅に違っていたので、調べて事を備忘録がわりに書こうと思います。VSCodeを使ってMarkdown記法の書類を作成する時、結構つまったので、設定方法と対処法を紹介します。session[:user_id])についてこんにちは、Nanayakuです。今回は、ログイン機能で使用される↓のcurrent_userメソッドについて解説しようと思います。こんにちは、Nanayakuです。今回は、CSSについて解説していきます。...AWSアクセスキーが漏洩して破産しかけた話こんにちは、Nanayakuです。自分は、AWSアクセスキーをGitHubに公開してしまい、破産しかけたました。その経緯と予防・対策について説明します。boostを受講し、プログラマーへ転職しました。2020年2月からSES企業に入社。boostやプログラミングなど興味があることを発信していきます。AFFINGER5.。