M1/M2 MacでMattermostをDocker Composeで動かすまでの手順を整理してみた

## はじめに

MattermostはSlackの代替として利用できるオープンソースのチャットプラットフォームです（日常的に使っています）。

https://mattermost.com/

この記事では、Docker Composeを使ってMattermostをローカル環境（Mac）に起動しようとした際に発生したエラーと、その対処法、そして基本的な起動手順をまとめます。

Dockerのサンプル構成は以下のリポジトリで公開されています。

https://github.com/mattermost/docker

## 書こうと思ったきっかけ

ローカル環境でMattermostを起動しようとしたところ、コンテナが起動直後にクラッシュする問題が発生しました。

**つながらなくて、困った画面**

![Screenshot 2025-06-03 at 20.58.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/bcf6c379-929a-4a58-8125-578041c91ef6.png)

Apple Silicon（M1/M2）特有の問題であり、同じ状況に陥る人も多いと考えられるため、備忘録としてまとめておきます。

**使っているMacbookのモデル**

![Screenshot 2025-06-03 at 20.59.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/fbae4325-fd3e-4d62-94ee-5b0b923e26ac.png)


## 実際にやってみた

### 公式リポジトリの利用と構成変更

#### **リポジトリをクローン**

```bash
git clone https://github.com/mattermost/docker
cd docker
```

**実際のターミナル画面**

![Screenshot 2025-06-03 at 21.01.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/22995361-f014-4292-a27d-e3fd71f35005.png)

#### **M1/M2 Mac向けに修正**
   `docker-compose.yml`の各サービスに `platform: linux/amd64` を追加します。

```yaml
services:
  postgres:
    platform: linux/amd64
    image: postgres:${POSTGRES_IMAGE_TAG}
    ...
  mattermost:
    platform: linux/amd64
    depends_on:
      - postgres
    image: mattermost/${MATTERMOST_IMAGE}:${MATTERMOST_IMAGE_TAG}
    ...
```

#### **`.env`ファイルの作成**

```bash
cp env.example .env
```

#### **ポートマッピングの確認・修正**
   Mattermostにブラウザからアクセスするには、ポート `8065` をホストに公開する必要があります。`docker-compose.yml` の `app` サービスに以下を追加します：

```yaml
mattermost:
  app:
    ...
    ports:
      - "8065:8065"
```

#### **コンテナを起動**

```bash
docker-compose up -d
```

**実際のターミナル画面**

```bash
 ~/Desktop/macbook pro/test/docker  (git)-[main]-  docker-compose up -d
[+] Running 18/18
 ✔ postgres Pulled                                                                                                               41.7s 
 ✔ mattermost Pulled                                                                                                            102.6s 
[+] Running 3/3
 ✔ Network docker_default         Created                                                                                         0.0s 
 ✔ Container docker-postgres-1    Started                                                                                         0.6s 
 ✔ Container docker-mattermost-1  Started                                                                                         0.3s 
 ~/Desktop/macbook pro/test/docker  (git)-[main]-  
```

#### **その他に使ったコマンド**

```bash
docker-compose down
docker-compose up -d
```

#### **アクセス確認**
   ブラウザで `http://localhost:8065` にアクセスし、セットアップ画面が表示されれば成功です。

![Screenshot 2025-06-03 at 21.10.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/9df24f85-84b5-445b-8b93-dbecb9e6ec57.png)

問題なくセットアップ画面が表示されました！

## セットアップしてみた

まず、メールアドレス・ユーザー名・パスワードの入力が求められるので、必要な情報を入力していきます。

![Screenshot 2025-06-03 at 21.15.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/becd4086-0847-45df-b64d-8378f094c0b8.png)

次に、作成する組織の名前を設定します。

![Screenshot 2025-06-03 at 21.16.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/6b9c7270-126b-4151-ab5a-2c2befee5af9.png)

この画面については、今のところ特に設定の必要がなかったため、スキップしました。

![Screenshot 2025-06-03 at 21.17.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/a897bcd7-dd68-4d55-bbe8-0ae3ebc76325.png)

こちらも現在はテスト用途で自分ひとりの利用だったため、誰も招待せずにそのまま完了しました。

![Screenshot 2025-06-03 at 21.17.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/041720f9-27ce-4669-8dce-b1be8aac93e6.png)

登録が完了すると、メッセージが送れるルームが表示されるので、いくつかテストメッセージを送ってみました。

![Screenshot 2025-06-03 at 21.19.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/4b85d9b2-f663-48be-b577-78551a45b755.png)

SlackのようなOSSのコミュニケーションツールで、面白いと思いました。手元で簡単に構築できたので、今後も機会があれば活用していきたいと思います...！

## まとめ

ここまで読んでいただき、ありがとうございました！

* M1/M2 MacでMattermostをDocker Composeで動かすには、`platform: linux/amd64` の指定が必要
* ポートマッピングの設定がないと、ホストからアクセスできない
* 公式リポジトリをベースに環境構築し、環境に合わせて柔軟に構成を調整する必要がある

同じような構成で詰まった方の参考になれば幸いです...！

## 参考文献

https://zenn.dev/chameleonmeme/articles/0988ac069dc269

https://qiita.com/Hikery/items/3cc0789de9eba7eacafb

https://github.com/mattermost/docker