Mastodon を Docker で立てるときに最低限しておくこと

2017年4月16日現在の情報です

  • 4月15日のコミットで docker-compose.yml に Docker Hub のイメージの記述が入った。 このイメージは GitHub の master に追従してビルドされるので(多分)、docker-compose build よりも docker-compose pull のほうが早い。
  • これは各地で言われていることだが、デフォルトの docker-compose.yml では PostgreSQL と Redis の永続化がされていない。volumesコメントアウトを外すこと。
  • webstreaming のポート (3000と4000) が外部におっぴろげになってるので、Docker network 内でリバースプロキシしたほうが良い。(リバースプロキシ用のnginxのコンテナを同一Docket networkに立てる)
  • docker-compose.ymlPostgreSQL のイメージが最新版に追従するようになっている。PostgreSQLはメジャーバージョン (9.x の x の部分。開発中の 10 以降は 10, 11, … がメジャーバージョン) でデータベースファイルの互換性がないので、メジャーバージョンアップ後に pull すると起動できなくなって慌てることになる。 image: postgres:9.6.2-alpine のようにバージョンを指定しておこう。 PostgreSQL が更新されたあとは、余裕が出来たら pg_upgradepg_dump/pg_restore でアップグレードしていくべし (でも Mastodon は PostgreSQL の最新の機能を使ってないので、セキュリティリスクとかが出ない限りは旧バージョンで固定してもよさそう)。 (18:38追記)

2017年4月17日 1:28追記

Mastodon を Docker で立てるときに最低限しておくこと - chaotic valkyrie

細かいタグではなくて postgres:9-alpine で大丈夫そうな気もする

2017/04/17 00:34
b.hatena.ne.jp

半分仰るとおりで、 image: postgres:9.6-alpine で充分です。これでセキュリティアップデートはある程度追従できます。 9.7はリリースされず次バージョンは10のはずなので 9-alpine でも大丈夫だとは思いますが、仮に 9.7 がリリースされるとアップグレード作業なしには起動できなくなるので 9.6-alpine が無難かと思います。