2016-06-24 15 views
2
FROM centos 
RUN yum -y update 
ENV zk=dx 
RUN mkdir $zk 

からDockerfileの入力パラメータを与えるためにどのようにイメージを構築した後、コマンド休閑実行した後にドッキングウィンドウrunコマンド

docker run -it -e zk="hifi" <image ID> 

私は名前のDXとディレクトリを取得ではなく、ハイファイで

は、誰も私を助けることができますドッカー実行コマンドからDockerfile変数を設定する方法

+0

[build-args](https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables-build-arg) – bjhaid

+0

いいえ、build-argsは使用できますドッカーを構築している間に引数を渡すために使用されました.Dockerを実行している間に渡す必要があります。 –

答えて

2

これは以下の理由でこのように動作しています。

  • Dockerイメージが(ほとんどのDockerfile命令のように)を組み込んだ場合、ROCKコマンドが実行されます。あなたはドッキングウィンドウを実行すると、コンテナは、画像から実行とき
  • ドッキングウィンドウの実行コマンドの実行を構築します。

あなたはドッキングウィンドウの実行を実行し、「HIFI」に値を設定する際に、画像はすでにそれに「DX」と呼ばれるディレクトリを持っている存在。ディレクトリ作成タスクは既に実行されています。環境変数を "hifi"に更新しても変更されません。

ビルドの変数をに変更しても、時間に設定することはできません。ビルドはすでに起こっています。

ちなみに、ディレクトリを作成する直前に、zk変数の値を上書きしています。 がdockerビルドに「hifi」を正常に渡した場合、上書きされ、フォルダは常に「dx」と呼ばれます。

+0

したがって、runコマンドからDockerfileにargを渡す方法です。実際には、DockerfileにデフォルトのIPアドレスを持つコマンドがあります。今すぐイメージを実行した後、他のIPアドレスに変更して実行します。 –

+0

ドキュメントのbuild-argsセクションを参照してください。 runコマンドとDockerfileで指定し、環境変数のように使用することができます。 https://docs.docker.com/engine/reference/commandline/build/ – Nauraushaun

関連する問題