Dockerでコマンド実行結果を変数に入れられなくて困った話
Page content
	
Dockerfileではコマンド実行結果を変数に入れられない。それでも入れたい時の回避策。
問題
何がやりたかったかというとOracle JDKを入れたかった。
のですが、コマンド実行結果を変数に入れることができない。
RUN set -ex &&\
    URL=$(curl -s http://www.oracle.com/technetwork/java/javase/downloads/index.html | egrep -m1 -o '/technetwork/java/javase/downloads/jdk8-downloads-[0-9]+\.html') && \
    ...ENVを使ってもできない。
ENV URL_SUFFIX=$(curl -s http://www.oracle.com/technetwork/java/javase/downloads/index.html | egrep -m1 -o '/technetwork/java/javase/downloads/jdk8-downloads-[0-9]+\.html')回避策
すっきりした解決策は無さそうですが、.bashrcに書けば一応は回避可能のようです。
RUN echo 'export URL="$(curl -s http://www.oracle.com/technetwork/java/javase/downloads/index.html | egrep -m1 -o '/technetwork/java/javase/downloads/jdk8-downloads-[0-9]+\.html')"' >> ~/.bashrcちなみに
この回避策は使わず、おとなしくOpenJDKに切り替えました。
RUN set -ex && \
    yum -yq install java-1.8.0-openjdk && \
    yum clean all


