当前位置: 首页 > 面试题库 >

Dockerfile覆盖ENV变量

汪迪
2023-03-14
问题内容

我有一个Dockerfile,我想使用默认值来配置API。

来自socialengine / nginx-spa

ENV API_URL本地主机:6007

因此,当我运行此映像时,我将能够使用以下内容覆盖localhost:6007:

码头工人运行-e API_URL = production.com:6007 ui

这是行不通的,我找不到如何执行此操作的清晰说明。

有什么建议吗?


问题答案:

您所描述的应该可以正常工作。鉴于:

$ cat Dockerfile
FROM socialengine/nginx-spa
ENV API_URL localhost:6007
$ docker build -t ui .
[...]

考虑一下:

$ docker run -it --rm ui env | grep API_URL
API_URL=localhost:6007

相比:

$ docker run -it --rm -e API_URL='production:6007' ui env | grep API_URL
API_URL=production:6007

-e VARNAME=varvaluedocker run命令行上传递a 将覆盖Dockerfile中的默认设置。

如果您看到不同的行为,请更新您的问题以准确显示您正在运行的命令以及相关的输出。

更新资料

这是完整的示例,为您的观看乐趣而记录:

https://asciinema.org/a/a5a2n3exlyh4jkii4k0ivvqmd



 类似资料:
  • 我正在尝试dockerize一个基本的nodejs应用程序。我的dockerfile如下 但我总是收到同样的错误 我该怎么解决?

  • 在Jenkins服务器中,定义了两个全局环境变量。在管理Jenkins中- 名称:MAVEN_HOME Value:/var/HOME/tools/hudson。任务。Maven_Maven安装/maven3.5.2 名称:PATH EXTRA$PATH:/usr/local/bin:$MAVEN\u HOME/bin 我看到PATH EXTRA会将MAVEN PATH添加到PATH环境变量中。这

  • 我在php项目中有一个Dockerfile,我需要在执行过程中传递用户和密码以下载库。 用户和密码必须在生产或本地 .env 文件中隐藏。目前我只是尝试本地选项,用户和密码为空。 我使用过和,但不仅登录失败,而且当我打印变量时,它们是空的。我也试过将变量硬编码,它工作正常,所以问题是变量没有从. env文件中检索。 docker compose开始如下 还有 Dockerfile: .env 的开

  • 我试图设置一个ENV等于Python脚本输出在我的dockerfile。由于分层,我无法找到将它们放在同一层的方法。我也无法找到一种方法将变量直接设置为等于脚本,我似乎无法找到如何在同一行中运行脚本。 python是一个简单的打印,称为test.py: 到目前为止,我已经在dockerfile中尝试了以下几个版本,以将ENV设置为脚本: 是否可以一步将ENV testvar设置为脚本的值,或者确保

  • 问题内容: 我得到输出b 3。为什么它没有给出b13作为输出。任何人都可以解释一下。 问题答案: 假设Foo类声明如下 变量没有覆盖的概念。他们只是被蒙面。 它正在打印3,因为当您使用超类引用访问变量时,它仅访问在超类中声明的变量。 请记住,超类对子类一无所知。

  • If set to true, variables read in from config files will overwrite each other. Otherwise, the variables will be pushed onto an array. This is helpful if you want to store arrays of data in config file