LoginSignup
0
1

More than 5 years have passed since last update.

マストドンを2.0.0へバージョンアップを行う

Posted at

概要

既に動いているインスタンスを2.0.0へ上げる
動かし方としてはEC2上から docker-compose up -d でそのまま使っている。
バージョンを上げるついでに画像データはS3へ、DBはRDSへ同時に移行させる。

環境

$ cat /proc/version
Linux version 4.4.0-1039-aws (buildd@lcy01-02) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #48-Ubuntu SMP Wed Oct 11 15:15:01 UTC 2017
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
$ docker -v
Docker version 17.05.0-ce-rc3, build 90d35ab
$ docker-compose -v
docker-compose version 1.12.0, build b31ff33
$ git describe --tags #マストドン
v1.4rc3-24-gbbc3db8

やったこと

RDSの作成

  • 時間がかかるので一番最初に作成してしまう。
  • 何らかの方法で適宜RDS(PostgreSQL)を作成。
    • 特に設定はしていない。文字コードぐらい?

S3の作成

  • コンソールからS3を作成
  • バケットポリシーを変更
バケットポリシー
{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicS3Objects",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::<YOUR BUCKET NAME>/*"]
    }
  ]
}
  • S3へ既存の画像データをアップロード
    • $ aws s3 sync ./public/system/ s3://<YOUR BUCKET NAME>/

既存DBのダンプを取得

  • docker内からダンプを取得するため、 docker-compose.yml を書き換える
    • dockerとバージョンの合ったpsqlコマンドを取得するのが面倒なため中から実行する。
  db:
    restart: always
    image: postgres:9.6-alpine
### Uncomment to enable DB persistance
    volumes:
      - ./postgres:/var/lib/postgresql/data
      - ./dump:/dump
  • ダンプを取得する
    • $ docker-compose run --rm db pg_dump -h localhost -p 5432 -U <USER NAME> <DB NAME> > /dump/dump.sql
  • 取得したダンプをRDSへ流し込む
    • $ psql -h <RDS ENDPOINT> -U <USER NAME> <DB NAME> < ./dump/dump.sql

リポジトリをクローンし直す

  • 現在動いているマストドンを停止させる
    • $ docker-compose stop
  • 適当なディレクトリに移動し、マストドンをcloneする

    $ cd /opt
    $ git clone https://github.com/tootsuite/mastodon
    $ cd mastodon
    

.env.productionの編集

  • 運用していたマストドンディレクトリから .env.production を取得
    • $ cp /path/to/mastodon/.env.production ./
  • .env.production を編集
    • 編集するのは DB パラメータと、 S3 パラメータ。
    • S3はENDPOINTは以下の通り編集する必要あり
      • ex) S3_ENDPOINT=https://s3-ap-northeast-1.amazonaws.com
  • VAPIDを埋める
    • $ docker-compose run --rm web rake mastodon:webpush:generate_vapid_key を実行して出力されたパラメータをコピペ

DBのマイグレーションとアセットのコンパイル

  • DBのマイグレーションの実行とアセットのコンパイル
    • $ docker-compose run --rm web rake db:migrate; docker-compose run --rm web rake assets:precompile

マストドンの起動

  • $ docker-compose up -d

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1