3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

パッケージインストールしたRocket.ChatをDocker Containersへ移行してみる

Last updated at Posted at 2020-01-05

目的

「大人の事情でSlackが使えない」という話をよく聞きます、うちの会社も例外ではなく同じ悩みを抱えておりRocket.Chatを使っています。OSSで使えるSlackっぽいチャットツールでは、当時は人気だった?(GitHubリポジトリのスター数が多かった)という印象を持っていた。

他人が構築してくれていた、仕事でコミューニケーションツールとして使っているRocket.Chatのバージョンが古かったのでバージョンアップしようと考えたけど、ついでになので他と環境を統一する目的を含めDocker Containersへ移行してみた。ちなみに移行元も移行先も同じサーバ。たぶん誰の役にも立たない情報だと思うけど自分のメモのため。

前提

・Rocket.Chat
 社員(約50名)のコミュニケーションツール。
 バージョンアップ前:0.70.0
 バージョンアップ後:2.2.0

・OS
 Amazon Linux 4.14.104-95.84.amzn2.x86_64

・その他
 Docker and Docker-Compose はインストール済み。
 バージョンアップ前のRocket.Chatは公式:Manual Installationを参考にインストール&起動済み。
 バージョンアップ後のRocket.Chatは公式:Docker Containersを参考にインストール&起動済み。
 バージョンアップ前とバージョンアップ後のRocket.Chatは異なるポート番号(10443と3000
とか)で起動している。

バージョンアップ前サービスの停止

サービスの停止と自動起動の停止

sudo systemctl disable mongod && sudo systemctl stop mongod
sudo systemctl disable rocketchat && sudo systemctl stop rocketchat

mongoDB のバックアップとリストア

docker-compose.ymlから、バックアップ先のディレクトリ(mongoDBのdockerがマウントしているディレクトリ)を確認しておく。
今回の環境では「<dockerホーム>/data/dump/」としています。

バックアップ先の確認

docker-compose.yml(抜粋)
  mongo:
    image: mongo:4.0
    restart: unless-stopped
    volumes:
     - ./data/db:/data/db
     - ./data/dump:/dump  👈今回はココです

バックアップ

バージョンアップ前サーバ(ローカル)でmongodumpコマンドを使い、出力先のディレクトリと対象となるDB名を指定してバックアップ。

sudo mkdir <dockerホーム>/data/dump/mongodump 
sudo mongodump -o <dockerホーム>/data/dump/mongodump -d rocketchat

mongoDBのDockerコンテナの中に入る

コンテナ内でbashを起動して作業を行う
-i :Keep STDIN open even if not attached
指定したコマンドを実行した後、コンテナの標準入力をDockerホストの標準入力と接続。

-t :Allocate a pseudo-TTY
コンテナ内で擬似TTYを割り当てて、Dockerホストの標準出力と接続。

cd <dockerホーム>
sudo docker exec -it rocketchat_mongo_1 /bin/bash

リストア

リストアコマンドmongorestoreでリストア対象のDB名とバックアップデータがあるディレクトリを指定する。今回の環境ではリストア先に既にDBがあるため「--drop」オプションを付け、データベースを削除する。

mongorestore -d rocketchat /dump/mongodump/rocketchat/ --drop
exit

バージョンアップ後サービスの再起動

sudo docker-compose down
sudo docker-compose up -d
sudo docker-compose ps
sudo docker-compose logs

結果

バージョンアップ後サービスの初回アクセス時にセットアップウィザードが出てきた時はちょっと焦ったけど適当にスキップして終了した。
データ移行は無事に完了したっぽい。

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?