概要
Mattermostをdocker composeにて起動するためのセットアップ手順です。
Nginxを構成し、HTTPSでアクセスできるようにします。
環境
本手順で取り扱う内容は、次の環境にて確認しています。
マシン:Amazon EC2
OS:Ubuntu 24.04
Docker:27.3.1
Docker Compose:v2.29.7
Mattermost:9.11.1
PostgreSQL:16
前提
- Docker がインストール済みであること
- フルチェインの証明書と秘密鍵が準備できていること
手順
Gitリポジトリをダウンロードします。
$ git clone https://github.com/mattermost/docker
ディレクトリを移動します。
$ cd docker
.env
ファイルを作成します。
$ cp env.example .env
ディレクトリを作成します。
$ mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
権限を変更します。
$ sudo chown -R 2000:2000 ./volumes/app/mattermost
証明書を格納するディレクトリを作成します。
$ mkdir -p ./volumes/web/cert
./volumes/web/cert
に証明書を格納します。
(証明書はここではfullchain.pem
、privkey.pem
としています。)
$ ls -la ./volumes/web/cert
total 16
drwxrwxr-x 2 ubuntu ubuntu 4096 Sep 26 01:33 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Sep 26 01:32 ../
-rw-r--r-- 1 ubuntu ubuntu 2835 Aug 23 02:02 fullchain.pem
-rw-r--r-- 1 ubuntu ubuntu 241 Aug 23 02:02 privkey.pem
格納後、.env
ファイルを編集します。
編集箇所は次の通りです。
DOMAIN=<YOUR-DOMAIN>
TZ=Asia/Tokyo
POSTGRES_IMAGE_TAG=16-alpine #任意のバージョン
CERT_PATH=./volumes/web/cert/fullchain.pem
KEY_PATH=./volumes/web/cert/privkey.pem
MATTERMOST_IMAGE_TAG=9.11.1 #任意のバージョン
docker-compose.nginx.yml
とdocker-compose.yml
のファイルを編集します。
次の行を削除して下さい。こちらはobsoleteとなっている表現です。
version: "2.4"
コンテナを起動します。
ymlファイルはメインのdocker-compose.yml
と、Nginxを構成するためにdocker-compose.nginx.yml
を指定します。
$ sudo docker compose -f docker-compose.yml -f docker-compose.nginx.yml up -d
コンテナが起動したことを確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7e330a42a9f5 nginx:alpine "/docker-entrypoint.…" 46 minutes ago Up 46 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx_mattermost
7015f31a8b4f mattermost/mattermost-enterprise-edition:9.11.1 "/entrypoint.sh matt…" 46 minutes ago Up 46 minutes (healthy) 8065/tcp, 8067/tcp, 8074-8075/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:8443->8443/udp, :::8443->8443/tcp, :::8443->8443/udp docker-mattermost-1
5f0888731117 postgres:16-alpine "docker-entrypoint.s…" 46 minutes ago Up 46 minutes 5432/tcp docker-postgres-1
FQDNでアクセスできるように、DNSの設定を行います。
その後、ブラウザからHTTPSでアクセスできることが確認できたら、セットアップは完了です。
参考
https://docs.mattermost.com/install/install-docker.html
https://qiita.com/shun_so/items/127904a3482fb8e971fb