在 Docker 中,如何捕获命令的输出以用于我的 Docker 文件的其他部分?

In Docker, how do I capture the output of a command for use in other parts of my Dockerfile?

我正在使用 Docker v20.10.12。我的 Docker 文件

中有这个
ENV RBENV_VERSION 3.0.2

RUN eval "$(rbenv init -)"; rbenv install $RBENV_VERSION \
&&  eval "$(rbenv init -)"; rbenv global $RBENV_VERSION \
&&  eval "$(rbenv init -)"; gem update --system \
&&  eval "$(rbenv init -)"; gem install bundler -f \
&&  rm -rf /tmp/*

我想将 RBENV_VERSION 设置为命令“$(cat .ruby-version)”的输出,以便与我的 运行 命令一起使用,但是显然不可能以这种方式设置 Docker ENV var。有没有另一种方法来捕获该命令的输出并在我的 Docker 文件中使用它,如果不是只在那个 运行 命令中?

我最后做了这个

ARG RBENV_VERSION="`cat .ruby-version`"
RUN RBENV_VERSION=$(eval ${RBENV_VERSION}); eval "$(rbenv init -)"; rbenv install $RBENV_VERSION \
&&  eval "$(rbenv init -)"; rbenv global $RBENV_VERSION \
&&  eval "$(rbenv init -)"; gem update --system \
&&  eval "$(rbenv init -)"; gem install bundler -f \
&&  rm -rf /tmp/*