5
親ドッカーの画像で定義された引数を使用する方法はありますか?親Dockerfile親Dockerファイルに引数を渡す
FROM openjdk:8-jdk
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
親ドッカーの画像で定義された引数を使用する方法はありますか?親Dockerfile親Dockerファイルに引数を渡す
FROM openjdk:8-jdk
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
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
にアクセスする必要があります。
USERディレクティブの現在の値を自分の 'Dockerfile'で抽出し、USERを上書きする前に保存することができますか?次のようなものがあります: 'user = $ {USER}'、次に 'USER root'、そして次に' USER $ {user} 'のようなものですか? – lanoxx
@lanoxxいいえ、Dockersビルドシステムではありません。あなたは画像ファイルシステムのどこかにユーザを保存し、シェルの[gosu'](https://github.com/tianon/gosu)のようなものを使用して、その保存されたユーザに戻ることができます。 – Matt