google ads mobile
google ads

Mattermostをdockerで構築してみた

未分類

はじめに

前回、mattermostを普通にインストールしてみたのですが、dockerで簡単にインストールできるようなので、dockerでのインストール手順やtipsを記載します。と言ってもほぼ1行でインストールできるのですががが

Dockerとは

そもそもdocker(コンテナ)とは何やねん?という方はこちらのサイトを参考にしてみてください。

簡単に説明すると、コンテナとは仮想環境の1種です。仮想マシン(VM)とは違ってゲストOSが不要で軽量に動作します(ホストOSのカーネルを共用)。dockerのコマンドを触ると実感しやすいのですが、コンテナイメージの作成、配布、実行、削除などがサクサクできます。

ミドルウェアのインストールや環境設定などはコード化されているので、開発~本番環境まで統一された環境、バージョンで運用できたりします。また、物理マシンが異なっても環境は同じものになるため、HWの違いによる動作不具合なんかも防げると思います。インフラ担当の方に朗報な技術ですね!

また、AWSではECSでコンテナ管理までマネージドしてくれるサービスがあるので、そのうち触ってみようかと思います。あれ、無料枠で使えるんだっけ?

環境

  • EC2:CentOS Linux release 7.6.1810 (Core)/3.10.0-957.1.3.el7.x86_64
  • Mattermost:5.13.2 (2019/09時点)
  • docker:19.03.2

参考情報

dockerのインストール

まずdockerを導入する必要があります。既にinstallしてる方は次へ飛んでください。

必要なパッケージをインストール

[root@ip-172-31-46-225 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

yumのリポジトリを追加

[root@ip-172-31-46-225 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

dockerをインストール

[root@ip-172-31-46-225 ~]# yum install -y docker-ce

確認

[root@ip-172-31-46-225 ~]# yum list installed | grep docker-ce

dockerを起動

[root@ip-172-31-46-225 ~]# systemctl start docker

dockerを自動起動

[root@ip-172-31-46-225 ~]# systemctl enable docker

Mattermostをdockerでインストール

one-lineでイケちゃうやつ。

[root@ip-172-31-46-46 ~]# docker run --name mattermost-preview -d --publish 8065:8065 --add-host dockerhost:127.0.0.1 mattermost/mattermost-preview

ブラウザで設定する

http://[EC2のパブリックIP]:8065

コンテナを使えば一瞬で構築できてしまいますね・・・Docker・・・恐ろしい子ッッッ

あ、AWSなのでセキュリティグループから8065を許可してあげてください。

メモ

  • mysqlやファイルの保存場所はローカルに設定されている(RDSやS3に設定する場合は別途作業が必要。コンテナイメージをコネコネすればイケそう?)
  • 下記に記載するように色々と設定がデフォルトなのでPWDとか変える必要ありそう

設定ファイルを見てみる

dockerで動いているプロセスを確認

[root@ip-172-31-46-46 ~]# docker ps -a
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                         NAMES
d0e94749b49e        mattermost/mattermost-preview   "/bin/sh -c ./docker…"   33 minutes ago      Up 33 minutes       3306/tcp, 33060/tcp, 0.0.0.0:8065->8065/tcp   mattermost-preview

コンテナにログインする

CONTAINER IDを指定してログインします。

[root@ip-172-31-46-46 ~]# docker exec -it [CONTAINER ID] bash

mattermostの設定ファイル

“SqlSettings”の部分とか。出力が長いので省略します。コンテナからログアウトしたい場合はexit。

root@d0e94749b49e:/mm# cat /mm/mattermost/config/config.json

まとめ

  • dockerマジで便利
  • イメージをカスタマイズするにはそれなりに工数が必要そう
  • k8sを導入してコンテナ管理も楽しそう(AWSのECSでもいいかもしれない)
タイトルとURLをコピーしました