amakanの開発環境をDockerに移行した

https://amakan.net/ のこの辺の改善の続き。

環境構築

docker が動く環境なら、git clone して bin/setup を叩けば開発が始められる。

$ cat bin/setup
#!/bin/bash
set -ex

docker-compose up -d
docker-compose run --rm node yarn install
docker-compose run --rm puma bundle install
docker-compose run --rm puma bundle exec rake db:create db:load:schema
docker-compose up -d

やっているのはこういう処理。

  1. イメージのダウンロードとビルド
  2. ライブラリのインストール
  3. DBスキーマの作成
  4. コンテナの起動

bundle と node_modules は volume を利用してマウントしているので、ビルド後に手元でインストールする必要がある。代わりに、これらが変更されるたびにビルドを行う必要はない。

開発者が1人しか居ない上に開発機が1つしかないので、ビルド済みのイメージをレジストリにアップロードして管理したりはしていない。

様子見

docker-compose ps で様子を見られる。

$ docker-compose ps
      Name                    Command               State               Ports
---------------------------------------------------------------------------------