Tasking Manager 3を更新したら動かなくなったので復旧させた話
以前更新してから時間が経っているので更新してみましたが、develop ブランチを取ってきていたせいもあって動かなくなってしまいました。
Release に置いてあるバージョンを遡っていって 3.0.1 だったらすぐに動いたので develop ブランチの HEAD から 3.0.1 に戻しました。
サービスの停止
まずは動いているサービスを停止させます。
$ sudo systemctl stop tm3.service $ sudo systemctl stop nginx.service
configのパッチ作成
例によってドメインごとに異なる設定の書かれたファイルのパッチを用意しておきます。
$ cd ~/tasking-manager $ git diff server/config.py > ~/config.patch
動かないですがとりあえず develop ブランチのやつを待避させておきます。
$ cd ~ $ mv tasking-manager tasking-manager.dev
v3.0.1のダウンロード
動いたバージョンを落として同じパスになるように移動させます。
$ mkdir ~/src && cd $_ $ wget https://github.com/hotosm/tasking-manager/archive/v3.0.1.tar.gz $ tar xf v3.0.1.tar.gz $ cd ~ $ mv ~/src/tasking-manager-3.0.1 tasking-manager
パッチの書き戻し
設定の書き戻しをします。
$ cd ~/tasking-manager $ patch server/config.py ~/config.patch
python venv の作成
gunicorn などが入ってくる venv を設定します。 サービスは systemctl で起動させるのですぐに deactive しました。
$ python3.6 -m venv ./venv $ source ./venv/bin/activate $ python3.6 -m pip install -r requirements.txt $ deactive
クライアントのビルド
クライアントをビルドします。
cd client/ npm install gulp build
package.json の内容だと npm から脆弱性を指摘されるので気がかりですが…。
あと2回くらい gulp build
を忘れて 404 返されたことがありました(汗
サービスの再開
最後にサービスを再開させます。
$ cd ~ $ sudo systemctl start tm3.service $ sudo systemctl start nginx.service
やっぱり Release を追いかけるのがいいのかな…
開発者でもないので GitHub リポジトリから取ってこられる develop ブランチではなく、Release から zip なり tar 玉を取ってきた方が安心かもしれません。
いやウチの環境だと v3.0.5 も動かなかったり、 3.0.1 にしたら npm install
で脆弱性指摘されたりするわけですが…。
動かない理由探してフィードバックできればいいんですが、なかなかアレです。