Mastodonのアップデートv1.2へ(追記あり ほぼ無停止更新)(docker system prune -a追記)
dockerのデプロイ、アップデートの方法がごっそり消えとる(キレ気味)
サンクス@nukosu@pao.moeさん
Main README developer documentation · Issue #1830 · tootsuite/mastodon · GitHub
短絡的。documentの方を整備してから変更してよ。あんまり英語読みきれてないけどお前のshouldとか知らん。
仕方がないので
README.mdを掘る
github.com
docker-compose.ymlとか編集しているので退避しないとだめね~
以下、流したコマンド
git stash save git pull git describe --tags `git rev-list --tags --max-count=1` # versionを確認 git checkout -b v1.2 $(git describe --tags `git rev-list --tags --max-count=1`) git checkout -b v1.3.1 refs/tags/v1.3.1 #こっちが良いかも #追記 2017/04/28 git stash list git stash list -p git stash show stash@{0} git stash apply stash@{0} docker-compose stop docker-compose build docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile docker-compose up -d #追記 git stash drop stash@{0}
以上です。
次はdb/redisもバックアップすべきですねー。
2017/4/29 追記 1.3.1
2017/6/24 追記 1.4.6
1.3.1への更新がありました。
あれから考えたのですが、Linuxはプロセスを立ち上げる際に必要なファイルを別領域にコピーして使うので、起動しながらapacheをビルド、とかできるわけです。で、ビルド後restartして最新へ、とかできる。dockerも同じなはずで、今回は、バックアップ取ってから起動しながらdocker-composeのbuildをためしてみました。行けました。
以下、流したコマンド。スクリプトにして一気に行ける感じがでてきました。
2017/6/24 追記 1.4.6
docker system prune -aを追記します。いらないイメージ消しておきましょ。
git stash save git pull git checkout -b local$(git describe --tags `git rev-list --tags --max-count=1`) $(git describe --tags `git rev-list --tags --max-count=1`) git stash apply stash@{0} docker-compose build docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile docker-compose stop && docker-compose up -d git stash drop stash@{0} docker system prune -a
基本ほぼ無停止で行けました。