チャットアプリ作っていきたいが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データが永続化できたかテストし忘れた..次回はそこから)