Docker イメージを構築するときに、COPY
結果のファイルが root 以外のユーザーに所有されるようにイメージにファイルを追加するにはどうすればよいでしょうか?
ベストアンサー1
バージョンv17.09.0-ce以降の場合
オプションのフラグを、またはコマンドの--chown=<user>:<group>
いずれかで使用します。ADD
COPY
例えば
COPY --chown=<user>:<group> <hostPath> <containerPath>
--chownフラグのドキュメントがメインで公開されましたDockerfile リファレンスページ。
問題34263統合され、利用可能になりましたリリース v17.09.0-ce。
v17.09.0-ceより古いバージョンの場合
COPY
Docker はroot 以外のユーザーとしてはサポートしていません。コマンドの後にファイルをchown
/する必要があります。chmod
COPY
Dockerfileの例:
from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]
v17.09.0-ce より前のバージョンでは、コマンドの Dockerfile リファレンスには次のようにCOPY
記載されていました。
すべての新しいファイルとディレクトリは、UID と GID が 0 で作成されます。
履歴この機能は、複数の GitHub の問題を通じて追跡されています。6119、9943、13600、27303、28499、問題 30110。