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

Docker构建不识别作为“构建-arg”传递的环境变量

姚雅珺
2023-03-14

我已经查看了我们可以在通过dockerfile构建docker映像的同时通过cmd行传递ENV变量吗?这向我展示了如何使用docker Build传递环境变量。在看到没有定义环境变量后,我查看了传递环境变量不适用于Docker,但这涉及通过docker run传递环境变量。

这是我的prod. Dockerfile

FROM ubuntu:20.04

ARG SSH_PRIVATE_KEY

RUN echo "Key is $SSH_PRIVATE_KEY."

和< code>docker build命令:

docker build -f prod.Dockerfile \
             --build-arg SHH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" \
             .

结果输出:

Key is .

然而cat~/. ssh/id_rsa的输出是:

-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----

我错过了什么?

共有1个答案

宋宏儒
2023-03-14

SHH_PRIVATE_KEY替换为SSH_PRIVATE _KEY

docker build -f prod.Dockerfile \
   --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" \
   .
 类似资料:
  • 这个码头商。yml: 使用这个。env文件(它位于根文件夹中,如docker-compose.yml和Dockerfile): 和节点服务器启动中的以下代码: 我真的更喜欢使用第一种或第二种方法 docker版本:18.06.1-CE docker-compose版本:1.19.0

  • 问题内容: 我写了一个使用两个参数的: 我写了一个for build: 我不想直接在compose文件中定义这些参数,因此我尝试在docker compose构建期间发送它们: 哪个没有用。我更改为将这些参数用作环境变量。所以我删除了几行: 和: 跑了; 仍然没有结果。 我还尝试将这些信息保存到文件中: 但是,似乎文件在构建时不会受到影响。他们只是参与运行时间。 编辑1: Docker版本不支持使

  • 在Docker主机上,我有: app.js DockerFile: 我还尝试在docker-compose.yml中使用,如下所示,这同样只使它在运行时可用,而不是在构建时可用: 请指教,我怎样才能使它以最不费解的方式工作?

  • 我正在尝试将服务器URL传递给在Docker容器中运行的React应用程序。它在应用程序中发送HTTP请求时使用,访问方式如下:server_url。这在主机上存储为en环境变量。 我尝试过直接在我的does文件中设置变量:< code > ENV server _ URL = $ { server _ URL } ,我认为这不起作用,因为< code>${server_url}是针对does文件

  • 问题内容: 我正在尝试使用单个,几个文件和几个文件为多个环境创建配置。我需要它为每个环境使用具有python依赖关系的其他文件。 假设我们在两个环境中创建服务:和。为此,我创建了以下文件结构: 目的是在容器的过程中实例化文件的专有名称。根据文档,我尝试了这种天真的方法,这种方法似乎不起作用: 将名称定义为环境变量: envs / dev.env: envs / prod.env: 在 Docker

  • 问题内容: 我目前在“开发”框中安装了Jenkins实例。这样可以很好地构建并且可以毫无问题地部署到我们的开发环境中。 在构建过程中,我的项目使用了一个包含诸如数据库连接URL之类的详细信息的属性文件(诸如此类的详细信息显然会因我所指向的环境而异)。 我想知道的是配置项目的最佳方法是什么,以便当我想将Jenkins构建的WAR文件发布到Production中时,它包含Production属性而不是