DockerでRailsとPostgresとRedis動かしてみた

現職最終日、会社で暇になったので、
前々からやろうやろうと思ってやらなかったDockerをいじってみた。

思いつきでこういうことやると最高に楽しい。

やったのは以下2点。
(MacBookProにDocker for Macが入っている状態からスタート)

  • Rails & PostgresをDocker上で動作
  • RedisをDocker上で動作

今更ながらDockerすげぇな。環境構築楽すぎ。
コンテナ上だから消したり作ったりも自由。
元のPCなんの影響もないから試したい放題。
さらに作ったものを他の人と共有もできると。

なんとなくこいつの価値を解りかけてきた。

以下メモ

Rails & Postgres

rails postgres dockerあたりをググって出てきたページを適当に見つつ実施。
一番は公式のクイックスタート。

https://docs.docker.com/compose/rails/
https://toripiyo.hatenablog.com/entry/2018/02/12/123942

読んでるだけだとよく分からんかったが、
実際やってみると案外なんとかなったし、イメージも掴めた。

まぁさっさと手を動かそうね、ということなんだろうな。

学んだことを簡単に整理すると。。。

  • Dockerfile, docker-compose.ymlがとにかく欲しい。
    • Dockerfile... コンテナイメージの作成
    • docker-compose.yml... 複数のコンテナをどう連携させるか、という感じ?
      ここはよく分からん。
  • Railsの場合はGemfile, Gemfile.lockも用意
  • Dockerは1イメージ1プロセスらしい。
  • Dockerイメージをビルドする
    docker-compose run web rails new . --force --database=postgresql
    docker-compose build
    2回やる理由はいまいちわかってない。Gemfileの関係で欲しいらしい。
  • docker-compose run <コンテナ名> <コマンド>で、
    指定したコンテナ上で任意のコマンドを実行できる。
    • でもこれ面倒だな。多分もっといいやり方あるだろう。

Redis

https://qiita.com/iyuichi/items/3a6f748cf1069205ba46

こっちはさっくり出来た。 恐らく1コンテナで完結するからだろう。

あまりに簡単に出来すぎて、 本当にコンテナで動いてるのか?と疑ってしまったが、

上のサイトには動作の確認手順まで付いている。親切。