当前位置: 首页 > 知识库问答 >
问题:

Dockerfile中的Env变量

汪阳飇
2023-03-14

我正在尝试dockerize一个基本的nodejs应用程序。我的dockerfile如下

FROM node:10

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 80
CMD [ "node", "index.js" ]
docker run -p 3000:3000 imagename -e connectionString=myConnString

但我总是收到同样的错误

[eval]:1
connectionString=myConnString

ReferenceError: myConnString is not defined

我该怎么解决?

共有1个答案

法景明
2023-03-14

docker run语法是docker run[OPTIONS]image[:tag@digest][COMMAND][arg...],在image[:tag@digest]作为[COMMAND][arg...]传递之后传递的任何内容。

应在run[OPTIONS]中传递环境变量设置,即:docker run-p 3000:3000-e connectionstring=myconnstring imagename

 类似资料:
  • 问题内容: 我有一个Dockerfile,我想使用默认值来配置API。 来自socialengine / nginx-spa ENV API_URL本地主机:6007 因此,当我运行此映像时,我将能够使用以下内容覆盖localhost:6007: 码头工人运行-e API_URL = production.com:6007 ui 这是行不通的,我找不到如何执行此操作的清晰说明。 有什么建议吗? 问

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

  • 问题内容: 是否可以根据构建的值在Dockerfile中有条件地设置变量? 例如:类似 更新:基于Mario的答案的当前用法: 但是,先运行然后进入主机,我仍然可以 问题答案: 是的,可以,但是您需要使用build参数作为标志。您可以使用Shell的参数扩展功能来检查条件。这是概念验证的Docker文件: 测试版本:

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

  • 我想读取Dockerfile中的变量,该变量在文件中定义。有什么办法可以做到这一点吗? 这是我的DockerFile:

  • 问题内容: 我正在使用Docker和Docker-compose构建一堆nginx + php。 我试图在我的文件中设置时区,并在Dockerfile中使用它,但是我可能会误解文档中的内容。 .env docker-compose.yml php7-fpm / Dockerfile 容器内部的时区设置不正确(在php容器bash中运行)。如果我在Dockerfile中手动编写区域,那么它将起作用。