マストドンのアップデート方法 更新版

Mastodon

はじめに

状況

  • Docker を使用
  • docker-compose.yml を編集
  • master の最新版ではなく最新バージョン(タグ付き最新版)にアップデート
$ cd  ~/live
$ git fetch
$ git stash
$ git tag
$ git checkout [バージョン番号]
$ git stash pop stash@{0}
$ sudo docker-compose pull
$ sudo docker-compose build
$ sudo docker-compose run --rm web rails db:migrate
$ sudo docker-compose run --rm web rails assets:precompile
$ sudo docker-compose stop && sudo docker-compose up -d

ファイルの退避と更新

未コミット状態のファイルの退避とマストドンのコードの更新を行う

作業ディレクトリへの移動

マストドンのコードがあるディレクトリに移動。以降はこのディレクトリで作業

$ cd ~/live/

ローカルリポジトリに反映

リモートにある Git リポジトリをローカルに反映させるためにフェッチ

$ git fetch

ファイルの退避

docker-compose.yml 等のファイルに変更を加えている場合は退避

$ git stash

未コミット状態のファイルが退避git status や git diff を実行したときにリポジトリがクリーンな状態になっている
現在退避中のコードが確認

$ git stash list

 

docker-compose.yml を編集する理由

デフォルトの docker-compose.yml(GitHub の公式リポジトリからクローンしてきて変更を加えていない docker-compose.yml)だと、PostgreSQL と Redis のデータが永続化されてない
データが永続化されていない状態でも使用することはできるが、設定を変更して Docker コンテナを再構築のとき、コマンドをミスで間違えてコンテナを削除したときに、データベースごと消える
 

タグ付き最新版へのアップデート

退避ができてリポジトリがクリーンな状態になったらタグ付き最新版にアップデート

$ git tag  # 最新版のバージョン番号を調べる
$ git checkout [バージョン番号]

git checkout [バージョン番号] で指定したタグ付きバージョンにアップデートできる
手動でタグ付き最新版のバージョンを調べる場合、 Releases · tootsuite/mastodon にアクセス
 

$ git tag | sort -V

出力結果に対して tail で一番下の一行を抽出すればそれがタグ付き最新版のバージョン

$ git tag | sort -V | tail -n 1
$ git tag
$ git checkout [バージョン番号]

ファイルの復帰

チェックアウトしてタグ付きの最新版に更新後、退避したコードをリストア

$ git stash pop stash@{0}

退避したコードを復帰するコマンドには git stash pop [番号] と git stash apply [番号] があるpop は、復帰したあと、スタッシュリストから削除するのに対して、apply は復帰するだけでスタッシュリストからの削除を行わない
スタッシュリストに残ってしまったものを削除するには git stash drop [番号] を使う
pop は applyと drop を一緒に行うもの

Docker コンテナの更新

Docker のコンテナを更新

$ sudo docker-compose pull

Docker のビルドと再起動

 

$ sudo docker-compose build

時間がかかる可能性あり
ビルド完了後、マイグレーションを実行

$ sudo docker-compose run --rm web rails db:migrate

プリコンパイルを実行

$ sudo docker-compose run --rm web rails assets:precompile

Docker を再起動

$ sudo docker-compose stop && sudo docker-compose up -d

 
 

タイトルとURLをコピーしました