チャットアプリ作っていきたいが2

続いて以下のようなかたちでもってチャットデータを永続化するための準備をすすめる

  • MySQLコンテナ起動しnodeコンテナと接続する
  • nodeコンテナと合わせてdocker-composeでセットアップできるようにする
  • MySQLのデータを永続化する(ディスクへ実ディレクトリを置く)

MySQLコンテナ起動

今回はwsl上のUbuntuでコンテナ起動するのでwindowsディスクをマウントするために起動コマンドはこういう感じになるイメージ

docker run --name hello-nginx -v /c/dev:/usr/share/nginx/html:ro -d -p 8080:80 nginx

この手順でいったんまずMySQL建てようと思ったらdocker-composeV3からはvolumes_fromが使えないらしくErrorする..
https://qiita.com/RW_876/items/1d2ee5726b91887aa594
のでこうしないといけない。修正して起動しmysql clientで接続テストしてok
https://qiita.com/yumetasuke/items/9905487564c5c96c8d4a
(clientがUbuntuにうまくinstallできなくてこの方法で迂回した..
soucelistは修正せずキャッシュ削除してsudo apt-get update -> installし直し)

docker-composeにまとめてnodeコンテナとnetworkを接続する

前回までで作ったTelepathのimageを起動するようにymlを書き換えつつさらにnetwork接続もすることにする

https://github.com/sh3eys/telepath/blob/master/docker-compose.yml

docker-compose upしたあとにnodeコンテナへbashログインして接続ためそうとおもったところでつまづいた
sudo apt install mysql-client-core-5.7
nodeコンテナだとこのpkg入らなかったErrorメッセージで指示された以下だったらinstallできた
mariadb-client-core-10.1
さいどnodeコンテナへbashログインして接続

# パスワード後で直さなあかんな..
mysql -h telepath-db -u example -p'example'

これでいったんnodeコンテナ側からmysqlコンテナへ接続できたいったんこれでok

sh3eys@DESKTOP-VUKTP3T:~/git/telepath$ docker-compose ps
    Name                  Command               State                 Ports
-----------------------------------------------------------------------------------------
telepath-app   docker-entrypoint.sh node  ...   Up      0.0.0.0:8080->3000/tcp
telepath-db    docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp, 33060/tcp

https://github.com/sh3eys/telepath
(MySQLデータが永続化できたかテストし忘れた..次回はそこから)