Preview 版 Docker Mattermost を Production 版に変更する(失敗)

Slack の過去ログを Mattermost に取り込む方法について書いた。

しかし上記方法では Slack の添付ファイルが含まれていなかった。

一方、添付ファイルを含めた Slack の過去ログはすでに別の Mattermost(Docker)に移行している。問題はこれが Preview 版 Mattermost であることだ。これを Production 版に移行すれば、Docker の引っ越し等がやりやすくなる。

そういうわけで、Preview 版の Docker Mattermost を Production 版 Docker Mattermost に移行することにした。

ドメインは移行に伴って別のものに変更している。

また移行先では Cloudflare Tunnel を使ってドメインを管理する。

*ただし最初に書いておくと、以下の方法はうまくいかなかった。

環境:
(移行元)macOS Catalina 10.15.6、Docker Desktop 4.11.1
(移行先)VMware vSphere Hypervisor 7.0U3g、Ubuntu Server 22.04 の Docker
(作業マシン)macOS Ventura 13.4.1

(1)Preview 版 Mattermost の Docker コンテナ内に入る。

$ docker exec -it mattermost-preview /bin/bash

(2)mysql に入り、データベース名を確認する。

# mysql -u mmuser -p
Enter password: mostest

mysql > SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mattermost_test    |
+--------------------+
2 rows in set (0.00 sec)

mysql> quit
Bye

データベース名が mattermost_test だと分かった。

(3)以下のコマンドで dump を取得する。

# mysqldump -u mmuser -p mattermost_test --default-character-set=binary --no-tablespaces > mysql.dump
Enter password: mostest

mysql.dump というファイルができあがる。

(4)station307.com というサービスを利用して3のファイルを作業マシンの Mac に転送。

# wget -S --post-file mysql.dump station307.com 2>&1 | grep located-at

com.station307.located-at: {ダウンロード用 URL} のように表示される URL に Mac のブラウザからアクセスしてダウンロード。download という名前のファイルがダウンロードされるので、mysql.dump に名前を変更する。

(5)Ubuntu に Docker と docker-compose をインストールする。

Ubuntu 18.04 LTS / 20.04 LTS に Docker をインストールする | SIDfm VM ユーザガイド
https://www.softek.co.jp/SID/support/sidfmvm/guide/install-docker-ubuntu1804.html

Ubuntu 20.04にDockerとdocker-composeを導入する
https://zenn.dev/shimakaze_soft/articles/02aebaedeb43b6

Proxy は設定しなかった。

$ docker -v
Docker version 24.0.2, build cb74dfc
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c

(6)Cloudflare Tunnel をインストールする。

(7)Docker の Mattermost をインストールする。

(8)Ubuntu に mysql.dump を転送する。僕は4同様に station307.com を使った。

(9)コンテナに mysql.dump を転送する。

$ sudo docker cp mysql.dump docker_mattermost_1:/mattermost/mysql.dump

(10)コンテナ内に入る。今回は root で入る必要がある。

$ sudo docker exec -it -u root {コンテナ ID} /bin/bash

(11)mysql.dump があることを確認する。

# ls

(12)mariadb-client のインストール。

# apt update
# apt install mariadb-client

(13)mysql.dump をインポートする。

# mysql -u mmuser -p -D mattermost --default-character-set=binary < mysql.dump
Enter password: mmuser_password
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

このように表示されて MySQL サーバーに接続できない。あれこれやってみたが解決しなかった。

参考:
How To List MySQL Databases (Step-by-Step Code Tutorial)
https://kinsta.com/blog/list-mysql-databases/

mysqldumpでPROCESS権限(PROCESS privilege)を要求される - いっさいがっさい
https://isgs-lab.com/424/

Station307
https://www.station307.com/#/

apt-get実行時に「E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)」エラー - 日々精進
https://anton0825.hatenablog.com/entry/2017/12/09/000000

【Docker】コンテナにROOTで入る方法 │ 多店舗展開ECシステム開発日誌
https://qol-kk.com/wp2/blog/2020/11/06/post-2165/

docker-compose buildするときにbundle installやmysql-clientでコケた話 - Qiita
https://qiita.com/aseanchild1400/items/d3580366054fee3d2703

Rails × Docker環境内でmysqlサーバーに接続するまでの流れ - Qiita
https://qiita.com/koki0527/items/bce61d29a2250535d0f8

Mysqlで「Access denied for user ‘root’@’localhost’ (using password: NO)」 - ITの隊長のブログ
https://www.aipacommander.com/entry/2014/05/26/152247


この記事が気に入ったらサポートをしてみませんか?