2016-08-13 12 views
0

Dockerfileの継承したドッカー画像からUSERを保存して復元する方法を探しています。たとえば、私の親イメージはデフォルトのサービスを指定し、USERをserviceuserに設定します。継承したドッカーファイルの保存と復元ユーザー設定

親イメージから継承し、ルートとしていくつかの変更を行いますが、ドッキング・イメージ・ユーザーをserviceuserに保つ必要があるイメージがあります。

私は手動でこれを行うことができます。

親Dockerfile:

from default 
USER serviceuser 
ENTRYPOINT ["some-service"] 

他Dockerfile:

from parent 
USER root 
RUN apt-get install -y cool-stuff 
USER serviceuser 

しかし、私は親にユーザーを変更するとき、私はすべて更新する必要があり、このように子どもの画像。子供のDockerfileでこれをdymaicallyする方法はありますか?

私が考えたその他のオプションは、子スクリプトでsudoを使用するか、エントリポイントをルートとして実行する(つまり、USERを設定しない)と、起動スクリプトでサービスユーザスイッチを実行することです。しかし、どちらもセキュリティ上の意味合いを持っています。

答えて

1

あなたが親画像の作者であれば、あなたは次のようにこれを行うことができます:

ENV serviceuser=foo 
RUN useradd $serviceuser 
USER $serviceuser 

子画像:

USER root 
RUN apt-get install -y cool-stuff 
USER $serviceuser 
+0

おかげで、私は変数がUSERのために働いている環境を知りませんでした。私が作者ではなかったとしても、その間にレイヤーを導入するだけで済みます。 –

関連する問題