状況
このイメージのコンテナは root で動いている。Dockerfile に 1 行足して、アプリを node ユーザーで動かしたい。
空欄に入る Dockerfile の命令を書いてください。
FROM node:22-slimWORKDIR /appCOPY --chown=node:node . .____ nodeCMD ["node", "server.js"]正答
正答
USER解説
USER 命令は、それ以降の RUN と、コンテナ起動時の CMD / ENTRYPOINT を実行するユーザーを指定する。node イメージには node ユーザーが最初から用意されている。root のまま動かすと、アプリの脆弱性を突かれたときにコンテナ内で何でもできてしまう。Dockerfile の命令は大文字小文字を区別しないので user と書いても動くが、引数と見分けるため大文字で書くのが慣例。RUN su node のように書いても、その RUN の中だけで終わり、CMD は root のまま動く。
参考: docs.docker.com
この問題を含む Docker のテストを制限時間つきで解く
Dockerクイズへ