docker run -u の説明では Dockerfile の USER を上書きすると言うことだったが、では Dockerfile に USER がなかったらどうなるかが気になった。
まあ、予想は付くが・・・。
$ docker run -v "$PWD/hello_dir:/data" -u 1002:1002 hello-test [abc]: Hello, Docker!? [abc]: ReadMe! $ ls -l hello_dir/abc/ total 8 -rw-rw-r-- 1 hirokuma hirokuma 8 Jan 8 21:48 read.txt -rw-r--r-- 1 hirokuma hirokuma 15 Jan 9 17:54 test.txt $
まあ、そうよね。
- Dockefile に USER の記述がない場合は「USER root:root」である。
- docker run -u は USER を上書きする。
とするか、
- docker run -u はユーザ切替を行う(Dockefile の USER よりも優先される)
のような書き方が良いのかね。
そう考えると、カレントユーザになるかならないかはっきりしない USER 指定よりも、何も書かずに root になる方が気付きやすいかもしれない。下手にカレントユーザの UID と Dockefile の USER で指定したユーザの UID が一致すると、うまくいく環境といかない環境が出てきて、何が原因かが分かりづらい気がするのだ。 root になっていると「ああ root だったらダメよね」と気付きやすい。
実に悩ましい話だ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。