概要
既に動いているインスタンスを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
- ex)
- 編集するのは
- 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