我正在构建一些DockerFile映像,对于如何将DockerFile中定义的环境变量(ENV)通过“运行-e”传递到容器中、进入监控程序,然后进入火花提交程序,而不必在supervisord.conf文件中对它们进行硬编码(这里的建议似乎类似:supervisord environment variables setting up application ),我感到有点困惑。
为了帮助解释,请设想以下组件:
我想我想在DockerFile中定义一次和只定义一次ENV变量,并且我认为应该可以使用"-e“开关通过run.sh将它们传递到容器中,但是我似乎想不出如何将它们从那里传递给被监管方,并将其传递到火花提交外壳(submit_my_spark_program.sh),这样它们最终就可以用于我的火花提交的jar文件。这看起来有点过火了,所以也许我在这里遗漏了什么.?
发布于 2016-04-21 20:28:05
显然,在这种情况下,答案(或者至少是解决办法)是不使用System.Property(name, default)通过主管获取Docker ENV变量,而是使用稍微不太有用的System.getenv(name) --因为这似乎是可行的。
我希望能够使用System.Property(name, default)来获取Docker变量,因为这提供了一种提供默认值的简单方法,但显然在这种情况下这是行不通的。如果有人可以通过提供一种使用System.Property的方法来改进这个答案,那么一定要加入进来。谢谢!
https://stackoverflow.com/questions/36048241
复制相似问题