itさて、前回に引き続いてDockerでのRailsの開発環境の構築。その1https://developer-collaboration.com/2018/08/03/docker-rails5-2-1/前回の手順で気になっていた部分として初期の立ち上げの時にイメージをあげて何度か作り直していた点です。今回は起動時にシェルを読み込むことでプロジェクトがなければ作ったりなどを実施しています。実施している手順は以下になります。rubyのイメージを利用したDockerコンテナでrails5.2をインストールしたイメージを作成し起動シェルを導入。上記イメージとpostgresのイメージでコンテナを作成し起動。db:create」をvolume上に実施。構築環境の準備どこか適当なディレクトリを作成し以下の6つのファイルを作成します。./tmp/pids/server.pidシェルを切り出したりなど主に悩んだ点は以下です。プロジェクトの作成などはvolumeをマウントした後でないとできないので、ENTRYPOINTかCOMMANDなどイメージ作成後でないといけない。db:create」もDBのコンテナが上がった後に実施の必要がある。上記は1度でも良いので複数回立ち上げたりなどでも回避できるが手順が煩雑になる。pidファイル削除など毎度実施したいコマンドもある。実際に作り込んでいくとシェル切り出しの方が使い回しが良さそうなので、ENTRYKITなど利用せずに実施。vendor/bundle」などしてプロジェクト内にbundleファイルを落としてもいいが、起動やデプロイに時間がかかるのでパス指定なし。COMMANDを複数指定した際にアプリをlistenしているプロセスIDが「1」になるか。起動に関しては以下のコマンドを実行します。up」のコマンドのみで大丈夫です。「web」のコンテナ上でのプロセスの状態は以下になります。実際にはこの後に「spring」を設定してみたり、「redis」も一緒に動かしちゃえだったり、諸々の自動化の設定をシェルに書いていったりと改変は大きくなりそうですが、基本的なところは実施できたかなというところです。このブログは株式会社CoLabMixによる技術ブログです。GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。