diff --git a/content/Mastodon.md b/content/Mastodon.md index 09fbe086..700f2520 100644 --- a/content/Mastodon.md +++ b/content/Mastodon.md @@ -43,4 +43,6 @@ cd /home/tomoya/mastodon /usr/bin/docker run -v fedifetcher-artifacts:/app/artifacts --rm --name fedifetcher -it ghcr.io/nanos/fedifetcher:latest --access-token=XXXXXXXXXXXXXXX --server=social.matsuuratomoya.com --home-timeline-length=200 --max-followings=90 --reply-interval-in-hours=6 --lock-hours=1 ``` -[[Mastodonのデータベースが壊れたときにやったこと(v4.2.0)]] \ No newline at end of file +[[Mastodonのデータベースが壊れたときにやったこと(v4.2.0)]] + +[[Mastodonのアップデートでいちいちdocker-compose.ymlを一時的に書き換えない]] diff --git a/content/Mastodonのアップデートでいちいちdocker-compose.ymlを一時的に書き換えない.md b/content/Mastodonのアップデートでいちいちdocker-compose.ymlを一時的に書き換えない.md new file mode 100644 index 00000000..37ca306d --- /dev/null +++ b/content/Mastodonのアップデートでいちいちdocker-compose.ymlを一時的に書き換えない.md @@ -0,0 +1,44 @@ +#tips + + +普通、dockerで運用するときはMastodonのリポジトリをクローンしてきて、`docker-compose.yml`の`build`をコメントアウトすることで、リポジトリからコンテナイメージをpullするように変える。 + +ただこの場合、バージョンアップデートの際に`git stash && git fetch && git checkout ` するとこんな感じにconflictが発生する。(ここでは4.26から4.2.5にダウングレードしてる) + +```yml + web: +<<<<<<< Updated upstream + build: . + image: ghcr.io/mastodon/mastodon:v4.2.5 +======= + # build: . + image: ghcr.io/mastodon/mastodon:v4.2.6 +>>>>>>> Stashed changes + restart: always +``` + +そこで、`docker-compose.yml`とは別に`docker-compose.override.yml`というのを置いておくと、特定のキーを上書きしてくれる。 + +最近まで、この上書き機能では特定のエントリをコメントアウトするような操作はできなかったが、docker-compose v2.18.0以降で`!reset`というのを置いておくとできるようになった。 + +[docker-compose.override.yml で 打ち消し定義 ができるようになった。](https://zenn.dev/iitenkida7/articles/91b88ca76e98c7) + +そこでこんなsudo apt-get upgrade docker-compose-plugin`docker-compose.override.yml`を作る。 + +```yml + +web: + image: ghcr.io/mastodon/mastodon:latest + build: !reset + #depends_on: #必要に応じて + # - es +streaming + image: ghcr.io/mastodon/mastodon:latest + build: !reset +sidekiq + image: ghcr.io/mastodon/mastodon:latest + build: !reset +``` + +こうすれば、更新する時は`docker-compose pull&& docker-compose down && docker-compose up -d`1つでよくなる。(compose自体に更新が入ったり、.env.productionとかに変更があったり、`rake:db migrate`する必要がある場合もあるので、基本はリリースノートを読んでから!) +