2016-03-24 16 views
1

私は後で別のコマンドで使用できるように、pomファイルからバージョンを取得しようとしています。だから私が持っているドッカーファイルの内部には、ドッカー内で変数を作成して使用するにはどうすればよいですか?

RUN VERSION="$(mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version|grep -Ev '(^\[|Download\w+:)')" 
RUN echo $VERSION 

エコーは何も印刷しません。私が実際に実行したいことは、

RUN mv /abc/abc-${VERSION}.jar /abc/abc.jar 

答えて

1

あなたがグループ1であなたの2行は、それが動作するかどう

RUN VERSION="$(mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version|grep -Ev '(^\[|Download\w+:)')" ; echo $VERSION

推奨される方法は、私はあなたがABC/myscript.sh

でスクリプトを持っている場合、私は、別の例を取るあなたのDockerfile

で、後でそれを使用する疑いがある、もちろんイリヤPeterovによって提案されたソリューションであります

RUN cd abc ; ./myscript

それはABCディレクトリに

2

そのような使用ENVで、それはドッカーの開発者は、あなたがそれをやりたい方法です:

ENV VERSION "$(mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version|grep -Ev '(^\[|Download\w+:)')" 
RUN echo $VERSION 

例があり、あなたに非常によく似ていますドキュメントですケース:https://docs.docker.com/engine/reference/builder/#environment-replacement

+0

ティではありませんよう RUN cd abc RUN ./myscript

が失敗している間、動作します正しい答えはsです –

関連する問題