良輔(51)310310件のシェア(そこそこ話題の記事)この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。モバイルアプリサービス部の五十嵐です。先日、あるRailsアプリケーションの開発環境を同僚のマシンに作成しようとしたところ、gemのインストールに1日かかってしまいました。最新バージョンをインストールするだけでよかったのですが、時が経ちライブラリの最新バージョンが更新されていたことが主な原因でした。この状況はいかんな〜と思い、Railsアプリケーションの開発環境もDockerにすることにしました。本記事では、Railsアプリケーションの開発環境をDockerにするときに検討したことや問題点などを書いています。本記事で紹介するDockerfileやdocker-compose.ymlは開発環境用なので、本番環境の参考にはしないでください。コマンドの実行があります。これらそれぞれをタイミングで行うのが良いか検討しましました。install結論としてはDockerfileに含めてbuildの段階で実行することにしました。理由は、Gemfileの変更がそれほど頻繁ではないこと、Gemfileを変更しなければbuild時にキャッシュが効くので時間がかからないことなどがあります。することでgemの更新ができます。作成し、そこにgemをインストールする方法を試しました。このメリットは、volumeを削除しない限りインストールしたgemのデータを再利用できるため、Gemfileを頻繁に更新してもbuildが素早くできるということです。実行する必要があります。するのは、起動が遅くなるのがいまいちでした。この方法には、DockerのVolumeの読み込みが非常に遅いという大きな問題があったので諦めました。Developersブログが詳しいです。使う設定はこんなかんじです。不要な箇所は省いています。なくなっていて、代わりの書き方を調べるのに苦労しました。して間違っているかも。Dockerfile。複数のコンテナ間でvolumeを共有するための方法です。Documentationを参照してください。実行することにしました。初期化用にスクリプトにまとめておいてもいいかもしれません。前述した通り、起動時のcommandに設定してしまうと、必要もないのにコマンドが実行され毎回の起動が遅くなるため、起動とは分けました。デバッグ次にデバッグの方法について説明します。2つの設定が必要になります。すると以下のようにdebug画面が表示されます。コンテナを終了せずコンソールだけ抜けます。するとコンテナが終了してしまいます。デバッグ機能を使うことができます。configurationという、いかにもデバッグ実行ができそうなドキュメントが見つかるのですが、こちらはIntellijからDockerやDockerCopmoseを起動する設定で、デバッグではありませんでした。やり方がそのまま載っていました。debug」を追加します。設定は以下のとおりです。Gemfileに以下を追加します。Railsサーバを起動します。debug」を実行します。serverが起動します。serverあとは、Intellijにブレイクポイントを設定して通常と同じデバッグができます。ステップインでソースコードが移動しないなど、完璧な動作ではありませんでした。バージョンが古いことが問題でした。バージョンを最新にします。した時にRailsアプリケーションが起動できないことがあります。1行追加して対処しました。解決するので設定に差異が生まれました。これはホスト名を環境変数にすることで対処しました。することで、Dockerを使わないローカル環境の起動もできるようにしています。Docker公式のドキュメントにRailsアプリケーション用のDockerfileとDockerComposeのサンプルがあるのでこれをベースとしました。必要なので、追加してインストールしています。ファイルが残ることがあるので削除する。ファイルが残ることがあるので削除する。developmentさいごにこれでローカル環境にRubyすらなくてもRailsアプリケーションの開発ができるようになりました。開発環境の構築も10分くらいで済むでしょう。516,007バックエンドがメインのエンジニアです。CX事業本部でSaaS開発をしています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。EC2)環境において、不要な踏み台サーバをなくすことができる便利なアップデートです。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介252SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。