#はじめに
普段管理しているインスタンスとは別に、masterの動作を確認するインスタンスがローカル環境で欲しくなり、やってみた。
基本的にはWindows環境下で仮想OSをブートさせて、さらにその上にDockerをインストールしてMastodonインスタンスを構築させてる。
そのため、普通にDocker for Windows 使うより面倒な手順になっている。
その代わり、仮想環境でインスタンスを構築するので他なPCへ移植が容易というメリットもある。
あと、基本的に覚書程度に書いた記事なので詳細が知りたい人はコメントいただければと思います。
使用環境:
OS:Windows 10 Pro 32bit
CPU:Intel Core i3 M330
メモリ:4GB
仮想環境:VM ware 6.0
仮想OS:lubuntu 17.04 32bit
仮想メモリ:1.5GB
仮想ハードディスク:20GB
1.まず、lubuntuのイメージをダウンロード
こちらよりDLできる。
ダウンロードに時間がかかるので、この間に VM ware をインストールしておくと楽かも。
2.VM ware のインストール
こちらよりDLできる。
うちの環境の場合は、32bit だったので、この古いバージョンを使っています。64bit の人は最新のものを使っておけばよいかと。
#3.VM ware に lubuntu 17.04 をインストール
インストールした VM ware を起動。以下、ざっくりとした流れ
- 「新規仮想マシンの作成」を押して、仮想マシンを構築する。
- 「インストーラ ディスクイメージ ファイル」を選択して、先ほどダウンロードしたISOイメージを選択。
- 「ゲストOS」は「Linux」、「バージョン」は「Ubuntu」を選択する。
- あとはそのまま「次へ」を押すだけ(メモリやディスク容量を変更したい場合は別)
ここまでやった後は、作成した仮想マシンの電源を入れてOSのインストールを行うだけ。
4.Mastodon インスタンスの構築
①docker関連のインストール他
まず、下記のコマンドを実行して更新をかける。
sudo apt update
sudo apt upgrade
次に、以下のコマンドで必要なものをインストールする
sudo apt install daemon
sudo apt install -y build-essential
sudo apt install git
sudo apt install docker.io
sudo apt install docker-compose
sudo apt install -y libssl-dev libreadline-dev
最後に以下のコマンドで docker アカウントを作成。
sudo adduser --ingroup docker docker
②rbenv にて Ruby 2.4.2 のインストール
こちらの記事を参考にさせていただいた。
rbenv+ruby-buildを利用してUbuntuにRubyをインストールする
まず、以下のコマンドで docker アカウントに切り替え。
su - docker
その後、rbenv を clone
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
お次に、ruby-build を clone
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
で、.bashrc に追記して、シェルを再起動させる
echo 'export PATH="~/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
これで rbenv が使えるようになったので Ruby 2.4.2 をインストール。
rbenv install 2.4.2
インストール完了後、以下のコマンドで使用する Ruby のバージョンを指定
rbenv global 2.4.2
③Mastodonインスタンス設置
基本的にこちらの記事の通りに進める。
Mastodonインスタンスをローカルに立てる簡単な手順(Docker環境、SSLなし)
docker アカウントにて作業する。そのため、アカウントを切り替えていない場合は
su - docker
を実行。
まずは、Mastodonのソースを取ってくる
git clone https://github.com/tootsuite/mastodon.git
で、ディレクトリを移動して、最新のバージョンにすり合わせる。
cd mastodon
git checkout v2.0.0
お次は、Docker用の設定ファイルを編集
vi docker-compose.yml
この時、db
の項目を下記のように変更する
db:
restart: always
image: postgres:plpine
編集後以下のコマンドを実行
cp .env.production.sample .env.production
で、
docker-compose pull
docker-compose build
を実行して待つ。
ビルドが終了したら、以下のコマンドでシークレットキーを作成(×3)
docker-compose run --rm web rake secret
本番環境用の設定を以下のコマンドで編集
vi .env.production
作成したシークレットキーを張り付けたりする。詳しくはこちらの記事を参照されたし
Mastodonインスタンスをローカルに立てる簡単な手順(Docker環境、SSLなし)
で最後にデータベースの初期化とアセットのプリコンパイルを実行
docker-compose run --rm web rails db:migrate
docker-compose run --rm web rails assets:precompile
プリコンパイルが終わったのち、
docker-compose up -d
で、Mastodonインスタンスが起動する。
なお、現在手元の環境でもう一度構築してるんだけど、荒ぶるゾウさんが表示されているのでなんぞ間違えているかもしれない(分かり次第追記します)
追記:
どうもmasterを参照したままだったのでうまいこと行かなかった模様。
git checkout v2.0.0
を途中に挟むことでインスタンスが構築されました。
5.まとめ
基本的に仮想環境で動かしているので、そんなに実行スピードはよくなかった。
まあ、今後のバージョンアップの際には練習用として役立つんじゃないかと思う。
あと、postgresql の変更が今回のキモなので注意。
これが変更されてないとうまいことインスタンスが構築されなかった。
参考記事
vmware player > ホストが32bitOSの場合 > Player 6 Plusが最後のバージョン
rbenv+ruby-buildを利用してUbuntuにRubyをインストールする
Mastodonインスタンスをローカルに立てる簡単な手順(Docker環境、SSLなし)