Preview 版 Docker Mattermost を Production 版に変更する(失敗)
Slack の過去ログを Mattermost に取り込む方法について書いた。
しかし上記方法では Slack の添付ファイルが含まれていなかった。
一方、添付ファイルを含めた Slack の過去ログはすでに別の Mattermost(Docker)に移行している。問題はこれが Preview 版 Mattermost であることだ。これを Production 版に移行すれば、Docker の引っ越し等がやりやすくなる。
そういうわけで、Preview 版の Docker Mattermost を Production 版 Docker Mattermost に移行することにした。
ドメインは移行に伴って別のものに変更している。
また移行先では Cloudflare Tunnel を使ってドメインを管理する。
*ただし最初に書いておくと、以下の方法はうまくいかなかった。
(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