我需要设置一个环境变量CLASSPATH
。在该变量中,我需要设置命令的结果:
hadoop classpath --glob
这将返回大量的 java 库,并且它们都需要设置到其中CLASSPATH
多变的。最大的问题是我只能在 docker 构建完成后运行这个命令,这意味着我必须在ENTRYPOINT
。但我就是无法让它发挥作用。我尝试了不同的方法:
ENTRYPOINT ["sh", "-c", "export CLASSPATH=$(hadoop classpath --glob) ...."
ENTRYPOINT ["sh", "-c", "set CLASSPATH=$(hadoop classpath --glob) ...."
ENTRYPOINT ["sh", "-c", "CLASSPATH=$(hadoop classpath --glob) ...."
ENTRYPOINT ["sh", "-c", "/bin/bash && export CLASSPATH=$(hadoop classpath --glob) ...."
但这些都不起作用。该命令本身有效,我使用以下方法对其进行了测试:
ENTRYPOINT ["sh", "-c", "echo $(hadoop classpath --glob) >> /tmp/classpath.tmp ...."
启动后该文件包含正确的内容。所以只是设置和保存环境变量有问题。我应该如何设置环境变量?通常你使用类似的东西
ENV CLASSPATH="some classpath"
但在这里我不能使用ENV
语句,因为它不会处理命令$(hadoop classpath --glob)