如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

2024-03-26

GitLab CI 允许向项目添加自定义变量。

它允许使用类型的秘密变量file我指定的键是变量名称,值是文件的内容(例如证书的内容)

然后在管道执行期间,内容将被保存为临时文件,调用变量名称将返回创建文件的路径。

最终我需要将此文件复制到构建项目时创建的 Docker 容器中。 (docker build ...在 yml 中)

在测试变量是否有效时,我尝试了echo $VARIABLE in .gitlab-ci.yml它有效,返回临时文件的路径。但是做的时候RUN echo $VARIABLE in the Dockerfile,它是空的。因此我也无法使用ADD $VARIABLE /tmp/这是我的目标。

有没有办法解决这个问题并使该文件可供Dockerfile?我是 Docker 和 GitLab 的新手,不知道还能去哪里寻找。


必须使用 .yml 文件docker build争论--build-arg VARIABLE_NAME=variable_value并在 Dockerfile 中使用ARG VARIABLE_NAME所以 Dockerfile 知道它需要使用环境中的变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器? 的相关文章

随机推荐

  • 如何冻结一个线程并从另一个线程通知它?

    我需要暂停 Rust 中的当前线程并从另一个线程通知它 在Java中我会写 synchronized myThread myThread wait 并从第二个线程 恢复主线程 synchronized myThread myThread n
  • 如何在android中使用“使用共享图像”共享Intent来共享图像?

    我有一个图像厨房应用程序 在该应用程序中 我将所有图像放入drawable hdpi 文件夹中 我在活动中调用图像如下 private Integer imageIDs R drawable wall1 R drawable wall2 R
  • 使用 Ajax 写入服务器文本文件

    我一直在努力使用 Ajax 编写服务器文本文件 如果有人花点时间看一下 我将非常感激 简单来说 为什么下面的代码不将 测试数据 写入test1 txt
  • 如何确定用户登录的提供商

    我在我的应用程序中使用多种 Firebase 登录方法 Facebook Google 电话等 但用户登录后 我无法确定使用哪个提供商进行登录 我在下面尝试过 非常接近推荐解决方案 https stackoverflow com quest
  • 路径中存在非法字符。将 Skip 和 Take 与 IEnumerable 一起使用时出错

    您好 我的控制器中有以下操作 AcceptVerbs HttpVerbs Post public ActionResult Index IEnumerable
  • IIS Express 上的基本身份验证

    我已经搜索了一段时间但似乎找不到答案 有多种方法可以禁用 启用匿名和 Windows 身份验证 有谁知道如何在 Visual Studio 2013 中的 IIS Express 8 0 上启用基本身份验证 Update Applicati
  • 将 JSON 对象反序列化为 .NET HashSet

    以下是原始 JSON 数据的示例 Standards 1 1 我想将数据反序列化为 public class Model public HashSet
  • java.lang.ClassCastException:java.io.ObjectStreamClass无法转换为java.lang.String

    我在 tomcat 上运行 Web 应用程序时遇到以下堆栈跟踪错误 无法找到此异常的根本原因 Eclipse 32 bit Luna Release 4 4 0 Tomcat 32 bit 8 0 30 jdk1 8 0 66 Jan 01
  • 为什么只有打开 Fiddler 才能在 ASP.NET 中调用 API?

    我在索引控制器中调用 API 就像这样 一切正常 只要我打开 Fiddler public ActionResult Index Base model null var client new HttpClient var task clie
  • 仅增加特定网页上的请求超时

    是否可以仅增加一个特定网页的请求超时 我正在开发 ASP Net 4 0 我需要一个特定页面具有更长的请求超时 因为它负责启动一个长时间运行的进程 谢谢 使用Web config
  • 如何让多个div水平滚动?

    我希望我的图块位于同一行 并且如果图块超出容器的宽度 容器可以水平滚动 看下面的演示 图块被添加到下一行 所以我必须垂直滚动才能访问它们 如何使水平滚动起作用 并使所有图块保持在同一行 container width 600px max h
  • 停止 Outlook、Gmail 等中的自动超链接

    我的网络应用程序向用户发送电子邮件 该电子邮件包含一个用于进一步用户操作的链接 我们的安全标准要求电子邮件中的链接不可点击 但是 电子邮件客户端会识别电子邮件中的 https 并自动链接 URL 关于如何阻止电子邮件客户端自动链接的任何想法
  • (Android) 在内部存储中查找路径 /Android

    Android 中有没有返回内部存储上的数据路径的方法 我有 2 部 Android 智能手机 三星 s2 和 s7 edge 我在其中安装了应用程序 我想获取位于此路径中的 sqliteDB Android data applicatio
  • 我应该使用堆栈进行长期变量存储吗?

    根据 汇编语言循序渐进 第3版 中的 Storage for Short Term 第8章 堆栈应该被视为短期存放东西的地方 存储在堆栈中的项目没有名称 通常必须按照放入的相反顺序从堆栈中取出 后进先出 记住 后进先出 然而 据我所知 C
  • Java libjava.so 文件错误

    自从我尝试在安装了 java5 jre 的服务器上运行 java 命令以来已经一天了 问题是我总是得到 错误 找不到 libjava so 错误 找不到 Java 2 运行时环境 即使我从安装目录 usr lib java1 5 jre b
  • “NULL”列 (0,3) 的数字溢出

    我有一个表 Oracle 12 1 0 2 0 当我总结我得到的值时 ORA 01426 numeric overflow 01426 00000 numeric overflow Cause Evaluation of an value
  • 使用 vala 将 uris 插入 Gtk.Clipboard

    我目前正在尝试为我的应用程序实现复制和粘贴 问题是我只能根据文档将纯文本或图像复制到剪贴板Gtk Clipboard https valadoc org gtk 3 0 Gtk Clipboard html https valadoc or
  • 如何使用Go Sdk for docker运行docker run?

    我想运行下面的 docker 命令docker run ajaycs14 hello world p 1527 80 d 如何实现上述使用Docker Go SDK https godoc org github com moby moby
  • 填充缺失的数据 pandas

    我如何填写此日期框中缺失的数据 没有销售的日子里缺少值 如何填写在特定商店和日期售出 0 件商品的天数的缺失值 Input Dates Store Item Sales 2017 01 01 Chicago Apple 10 2017 01
  • 如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

    GitLab CI 允许向项目添加自定义变量 它允许使用类型的秘密变量file我指定的键是变量名称 值是文件的内容 例如证书的内容 然后在管道执行期间 内容将被保存为临时文件 调用变量名称将返回创建文件的路径 最终我需要将此文件复制到构建项