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コンテナで完結するからだろう。
あまりに簡単に出来すぎて、 本当にコンテナで動いてるのか?と疑ってしまったが、
上のサイトには動作の確認手順まで付いている。親切。