Docker

Dockerコンテナ内で作成したファイルがホスト側からアクセスできなくなる現象

ホストOSのディレクトリをコンテナにマウントして、コンテナ側からそこにファイルを保存すると、それらのファイルをホストOS側で開くことができなくなってしまう。

コンテナの内でnpm installできない

node_modulesのownerがrootになるのが原因

node.jsの公式イメージは、ログインユーザーをnodeにすることを推奨している。そのため、DockerfileでUSERを指定する必要がある。

しかし、コンテナに名前付きボリュームをマウントした場合は、ログインユーザーがボリュームを作成するわけではないので、マウントポイントのownerがrootになってしまう。この場合はコンテナの作成時にディレクトリの所有者を変更する必要があるため、Dockerfileでchownする。

ホストOSでログインしているuidとnodeのuidが一致するのは偶然?