2016-12-11 8 views

答えて

2

Build argumentsから次の子Dockerfile

FROM jenkins 

USER ${user} 

RUN echo "${user}" 

抜粋を画像に永続化されていないので、彼らはFROM親イメージを構築するには使用できません。考える

ARG命令とは異なり、ENV値は常にビルドされたイメージに保持されます。

ENV変数があるので、ARG変数はビルドされたイメージに保持されません。

引数がどこかにそれらを格納することで、持続可能な、最も簡単な場所は、環境変数です。子画像で

ARG IMAGE_USER=jenkins 
ENV IMAGE_USER=$IMAGE_USER 

すべてRUNのステップは、自分の環境でIMAGE_USERにアクセスする必要があります。

+0

USERディレクティブの現在の値を自分の 'Dockerfile'で抽出し、USERを上書きする前に保存することができますか?次のようなものがあります: 'user = $ {USER}'、次に 'USER root'、そして次に' USER $ {user} 'のようなものですか? – lanoxx

+0

@lanoxxいいえ、Dockersビルドシステムではありません。あなたは画像ファイルシステムのどこかにユーザを保存し、シェルの[gosu'](https://github.com/tianon/gosu)のようなものを使用して、その保存されたユーザに戻ることができます。 – Matt

関連する問題