首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DockerFile中定义ENV变量并将它们传递给由监督管理脚本提交的火花映像?

如何在DockerFile中定义ENV变量并将它们传递给由监督管理脚本提交的火花映像?
EN

Stack Overflow用户
提问于 2016-03-16 22:33:01
回答 1查看 183关注 0票数 1

我正在构建一些DockerFile映像,对于如何将DockerFile中定义的环境变量(ENV)通过“运行-e”传递到容器中、进入监控程序,然后进入火花提交程序,而不必在supervisord.conf文件中对它们进行硬编码(这里的建议似乎类似:supervisord environment variables setting up application ),我感到有点困惑。

为了帮助解释,请设想以下组件:

  1. DockerFile (包含大约20个环境变量"ENV FOO1 bar1“等)
  2. run.sh (码头经营-d -e my_spark_program)
  3. conf/Superord.conf (program:my_spark_program,command=sh /opt/spark/sbin/submit_my_spark_program.sh等)
  4. 'spark.executor.extraJavaOptions=-Dconfig.resource=app‘(包含我想运行的jar的火花提交--可能还需要类似于--文件·--conf 'spark.driver.extraJavaOptions=-Dconfig.resource=app’·--但这看起来不太对?)

我想我想在DockerFile中定义一次和只定义一次ENV变量,并且我认为应该可以使用"-e“开关通过run.sh将它们传递到容器中,但是我似乎想不出如何将它们从那里传递给被监管方,并将其传递到火花提交外壳(submit_my_spark_program.sh),这样它们最终就可以用于我的火花提交的jar文件。这看起来有点过火了,所以也许我在这里遗漏了什么.?

EN

回答 1

Stack Overflow用户

发布于 2016-04-21 20:28:05

显然,在这种情况下,答案(或者至少是解决办法)是不使用System.Property(name, default)通过主管获取Docker ENV变量,而是使用稍微不太有用的System.getenv(name) --因为这似乎是可行的。

我希望能够使用System.Property(name, default)来获取Docker变量,因为这提供了一种提供默认值的简单方法,但显然在这种情况下这是行不通的。如果有人可以通过提供一种使用System.Property的方法来改进这个答案,那么一定要加入进来。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36048241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档