2021年11月15日月曜日

Docker Windowsでは難しい

VMwareの仮想マシンで、開発環境を構築してきましたが、 Dockerでの開発環境に取り組んでいます。

Windowsに、WSLを導入し、dockerを使っていますが、この環境で動く、docker-compose.ymlが、ubuntuに持っていくと動きません。

原因は、主に、ファイルのパーミッションです。

docker内のユーザーと、ホストのユーザーが異なるため、アクセスできるように、設定を気をつけないと、ubuntuでは動きません。

ユーザーは、

・ホスト?側のファイルを所有するユーザー

・dockerを起動するユーザー

・コンテナ内で、サービスを起動するユーザー

この3つが関わるため、面倒でした。

ファイルの所有ユーザーと、コンテナ内のユーザーの違いについては、情報を、よく見かけますが、dockerのコンテナを起動するユーザーは盲点でした。

*.envで、環境変数(コンテナ内のデータベースのユーザー名、パスワード)を管理しますが、このファイルが、コンテナ内に反映されず、悩みました。

面倒なので、関係のあるフォルダは、下記のコマンドで読み込み権限を与えて解決しました。

$ chmod +r -R フォルダ名

セキュリティを考えれば、UIDを一致させるなどした方が良さそうですが、妥協しました。


また、mysqlでは、my.confとmy.cnfの名前の違いも考慮する必要がありました。


おそらく、ubuntu側で、dockerファイルを作成し、windowsに持っていく流れであれば問題ないと思いますが、逆は、はまりました。


0 件のコメント:

コメントを投稿