LoginSignup
0
2

More than 5 years have passed since last update.

Windows10の仮想環境下でMastodonインスタンス設置

Last updated at Posted at 2017-11-22

はじめに

普段管理しているインスタンスとは別に、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 を起動。以下、ざっくりとした流れ

  1. 「新規仮想マシンの作成」を押して、仮想マシンを構築する。
  2. 「インストーラ ディスクイメージ ファイル」を選択して、先ほどダウンロードしたISOイメージを選択。
  3. 「ゲストOS」は「Linux」、「バージョン」は「Ubuntu」を選択する。
  4. あとはそのまま「次へ」を押すだけ(メモリやディスク容量を変更したい場合は別)

ここまでやった後は、作成した仮想マシンの電源を入れて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なし)

0
2
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
2