Help us understand the problem. What is going on with this article?

Mattermost-dockerをRaspberry Pi3で動かす

More than 1 year has passed since last update.

Mattermost-dockerをRaspberry Pi3で動かす

ラズパイ用のMattermostをビルドした後で、Mattermost-docker用のdockerコンテナを作成します。

この記事は、MattermostをRaspberry Pi3用にビルドするの続編となっています。またラズパイには、dockerとdocker-composeがインストールされている必要があります。

参考: dockerは、Get Docker-CE for Debian にある armhf用でインストールします。
    docker-composeは、Raspberry Pi用docker-composeの構築 を参照して下さい。

1. Mattermost-dockerのコンテナ

Mattermost-dockerでは、app、db、webの3つのコンテナを使用していますが、それぞれのBase Imageは以下のようになっています。

サービス app db web
コンテナ mattermost-docker_app mattermost-docker_db mattermost-docker_web
アプリケーション mattermost-team-linux-arm.tar.gz
ベースイメージ alpine:3.6 postgres-9.4:alpine nginx:mainline-alpine
  • ラズパイ用としてappのベースイメージであるalpin:3.6は、arm32v6/alpine:3.6alpine:3.6.2ベースになっていますので、これを使います。
  • PostgreSQLは、arm32v6/postgres:9.4-alpineにします。
  • nginxは、見つからなかったのでarm32v6/alpine:3.6をベースイメージとして、コンテナを作ってしまいましょう。このコンテナイメージ名をarm32v6/nginx:mainline-alpineとしてビルドすると、以下のようになります。
サービス app db web
コンテナ mattermost-docker_app mattermost-docker_db mattermost-docker_web
アプリケーション mattermost-team-linux-arm.tar.gz
ベースイメージ arm32v6/alpine:3.6 arm32v6/postgres:9.4-alpine arm32v6/nginx:mainline-alpine

この図では、nginx用のベースイメージをarm32v6/nginx:mainline-alpineとしていますが、そのコンテナイメージを作成するためのベースイメージをarm32v6/alpine:3.7としています。mattermostのappでは、alpine:3.6でしたがnginx:mainline-alpineのDockerfileがalpine:3.7を使っていましたので3.7に修正しています。

2. nginx用コンテナの作成

docker-nginxをクローンします。

git clone https://github.com/nginxinc/docker-nginx.git

alpine用のmainlineということで、mainline/alpineディレクトリのDockerfileを修正してベースイメージをラズパイ用にします。

cd docker-nginx/mainline/alpine
vi Dockerfile
FROM arm32v6/alpine:3.7

ここで、dockerコンテナをビルドします。

docker build -t arm32v6/nginx:mainline-alpine .

3. mattermost-dockerのビルド

いよいよmattermost-dockerのコンテナをビルドします。

3.1 mattermost-dockerのクローン

mattermost-dockerをクローンします。

git clone https://github.com/mattermost/mattermost-docker.git

3.2 mattermostパッケージをコピー

事前にビルドしておいたmattermost-team-linux-arm.tar.gzファイルをmattermost-docker/appディレクトリにコピーします。

cp mattermost-team-linux-arm.tar.gz mattermost-docker/app

3.3 app/Dockerfileの修正

app/Dockerfileをラズパイ用に修正します。

cd mattermost-docker/app
vi Dockerfile
FROM arm32v6/alpine:3.6

またDockerfile# Get MattermostのRUNコマンドを、以下の内容に修正して、事前にビルドしたパッケージを使用するようにします。

COPY mattermost-team-linux-arm.tar.gz /

RUN mkdir -p /mattermost/data \
 && tar zxvf mattermost-team-linux-arm.tar.gz \
 && cp /mattermost/config/config.json /config.json.save \
 && rm -rf /mattermost/config/config.json \
 && rm mattermost-team-linux-arm.tar.gz

3.4 db/Dockerfileの修正

db/Dockerfileをラズパイ用に修正します。

cd mattermost-docker/db
vi Dockerfile
FROM arm32v6/postgres:9.4-alpine

3.5 web/Dockerfileの修正

web/Dockerfileをラズパイ用に修正します。

cd mattermost/web
vi Dockerfile
FROM arm32v6/nginx:mainline-alpine

3.6 mattermost-dockerのビルド

準備ができたので、mattermost-dockerをビルドします。

cd mattermost-docker
docker-compose build

ビルドが成功すると、以下の3つのコンテナイメージができています。

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED
     SIZE
mattermost-docker_web   latest              a176edc41160        16 seconds ago
     15MB
mattermost-docker_app   latest              d10b8c15596b        32 seconds ago
     165MB
mattermost-docker_db    latest              41694313188e        About a minute a
go   336MB

4. mattermost-dockerの起動

docker-composeを使って、mattermost-dockerを起動します。

cd mattermost-docker
docker-compose up -d

起動している状態は、以下となっています。

$ docker ps -a
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                      NAMES
d324568f0991        mattermost-docker_web   "/entrypoint.sh"         20 seconds ago      Up 10 seconds       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   mattermost-docker_web_1
397890880eda        mattermost-docker_app   "/entrypoint.sh plat…"   20 seconds ago      Up 11 seconds       80/tcp                                     mattermost-docker_app_1
515ab571d4b6        mattermost-docker_db    "/entrypoint.sh post…"   20 seconds ago      Up 11 seconds       5432/tcp                                   mattermost-docker_db_1

5. mattermost-dockerのアクセス

ブラウザからmattermost-dockerの動いているラズパイをアクセスします。

成功していれば、Mattermostの初回サインアップ画面が表示されますから管理者用のアカウントを作成します。

6. 実際の利用にあたって

上記でラズパイ上で、Mattermostを利用できるようになりました。ただし、実際に利用する場合にはhttps対応をしたり、dbとappでマウントするボリュームを変更したりしておいた方が良いでしょう。

参考: Configuring NGINX with SSL and HTTP/2

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした