Dockerfile 中的 AWS 凭证

2024-03-27

我需要在容器构建期间从 AWS S3 下载文件,但是我未能成功向构建过程提供 AWS 凭证,而无需将它们实际硬编码到 Dockerfile 中。我收到错误:

docker 致命错误:无法找到凭据

尽管之前已经执行过:

AWS 配置

此外,我无法使用 --build-arg 来达到此目的。

我的问题:是否可以拥有这些凭证在构建时无需将它们硬编码到 Dockerfile 中,如果是的话怎么办?

感谢您的关注。


使用--build-arg如果您不介意每个人都可以看到这些值,则 flag 是正确的方法docker history,但是您必须使用ARG指令,而不是ENV指令在 Dockerfile 中指定它们。

这是一个例子Dockerfile我已将其与 AWS 凭证一起使用。它将 aws 凭证作为构建参数,包括默认参数AWS_REGION构建论证。然后,它执行基本的 aws 操作,在本例中登录 ecr。

FROM <base-image>:latest # an image I have that has `aws` installed

ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
ARG AWS_REGION=us-west-2

RUN aws ecr get-login --no-include-email | bash

CMD ["npm", "start"]

然后,您可以使用以下命令构建映像:

docker build -t testing --build-arg AWS_ACCESS_KEY_ID=<Your ID Here> \
    --build-arg AWS_SECRET_ACCESS_KEY=<Your Key Here> .

请注意,--build-arg稍后使用该图像的任何人都可以看到参数docker history.

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

Dockerfile 中的 AWS 凭证 的相关文章

随机推荐

  • 我可以通过编程方式确定 Airflow DAG 是计划的还是手动触发的?

    我想创建一个片段 根据 DAG 是计划的还是手动触发的来传递正确的日期 DAG 每月运行一次 DAG 根据上个月的数据生成报告 SQL 查询 如果我运行预定的 DAG 我可以使用以下 jinja 片段获取上个月的数据 execution d
  • 为什么 CSS 不支持负填充?

    我已经多次看到负填充的前景可能有助于某些页面元素的 CSS 开发变得更好 更容易 然而 W3C CSS 中没有规定负填充 这背后的原因是什么 该财产是否存在任何阻碍其使用的障碍 感谢您的回答 UPDATE例如 正如我所见 如果您使用的字体具
  • 使用 4 个(或 N 个)集合一次仅生成一个值 (1xN)(即为 tuple4+ 进行压缩)

    scala gt val a List 1 2 a List Int List 1 2 scala gt val b List 3 4 b List Int List 3 4 scala gt val c List 5 6 c List I
  • Java - java有类似C#的struct自动构造函数的东西吗

    我已经使用 C 很长时间了 现在我需要用 Java 做一些事情 java中有类似C 的struct自动构造函数的东西吗 我的意思是 在 C 中 struct MyStruct public int i class Program void
  • jQuery 1.6.4 是否已损坏或发生了什么变化? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 它适用于
  • 以编程方式移动 xib 文件中的 UILabel

    Problem 我的 UILabel 在更改其帧信息后没有移动 但在使用 NSLog 输出后 帧信息与正确的位置匹配 但标签本身实际上并没有移动 更多信息 我正在尝试将 UILabel 移动到与 UITextField 相同的位置 两者都包
  • 动态更改列名

    我有一个标题 详细信息自定义屏幕 我在其中根据标题中的下拉选择来操作显示哪些网格列 这工作得很好 但现在我也想更改一些列名称 使用记录的语法 我无法让它工作 我看不出我做错了什么 似乎没有什么区别 我已经附加到进程并在这个事件上设置了一个断
  • 为什么在编译器选项中添加搜索目录后,标准库头内会报告错误?

    我在 CodeBlocks MinGW32 中有一个项目 其设置如下 Foo src somefile1 cpp Foo src somefile2 cpp Foo src somefile1 h 标头是这样包含的 include some
  • JSON.stringify 使用 Knockout JS 变量的对象

    当前场景 function Employee data var self this variables this Forename ko observable data Forename this Surname ko observable
  • __invert__ 方法

    目的是什么 invert 方法 我在探索 Python 内部结构时发现 gt gt gt dir builtins int abs add and bool ceil class delattr dir divmod doc eq floa
  • R - 图例中组合geom_vline和geom_smooth

    添加时我在图例中遇到一些奇怪的行为geom smooth and a geom vline 在我的 ggplot2 图表中 这是一个可重现的示例 library ggplot2 n lt 60 set seed 123 df lt data
  • 如何在给定角度的椭圆轮廓上获取点?

    因此 我给出了椭圆 它们由中点 水平半径 rh 和垂直半径 rv 定义 我使用 sin cos 绘制它们 结果对我来说看起来相当不错 只是确保这不是错误源 现在假设我有一个给定的角度 或方向向量 并且我希望椭圆轮廓上的点具有该角度 方向 我
  • 使用 XPath 选择根和子匹配表达式

    我正在使用 Nokogiri 来解析一些类似于以下内容的 XML
  • 自动调整 div 容器 html 中表格中的列大小

    我正在寻找一种解决方案 最好是在 css 或 html 中 以便我的位于 div 容器内的表格能够压缩其 以便在调整浏览器大小时它们保留在 div 容器内 http lux physicals ucdavis edu public new
  • 这个符号在 IntelliJ 中意味着什么? (文件名左下角红色圆圈,里面有“J”)

    在我创建的 Java 项目的 IntelliJ 的目标文件夹下 包中有一些 java 源文件 每个文件旁边的 J 图标都有一个红色圆圈 中间有一条线 这意味着什么 我如何解决它 您需要指定源目录 File gt Project Struct
  • 使用面板消息/解决方法时的 Java 1.5 JOptionPane 绘制错误?

    我有一个 JOptionPane 其中有一个自定义消息面板 位于面向 Java 1 5 的应用程序中 除其他内容外 该面板还包含一个 JTextField 每调用 20 次左右 对话框中就不会绘制任何内容 甚至 确定 取消 按钮也不会绘制
  • 让 docker-compose 只运行某些容器

    所以我目前可以使用 docker compose up test 它只运行我的数据库和测试脚本 我希望能够说 docker compose up app 或类似的东西来运行除测试之外的所有内容 这样我就不会运行不必要的容器 我不确定是否有办
  • 获取任意文件的二进制值

    如果假设我有一个文件 例如music mp3 or image jpg或任何要考虑的文件 我如何将这些文件的二进制表示形式转换为java中的字符串值 以便我可以查看它 例如 假设我有一个名为 video mp4 那么它必须表示为101011
  • Flask 和 Jinja2 使用漂白剂,图像 HTML 无法正常工作

    我一直在为自己的一个项目创建一个小博客 只有我作为用户才能访问发布页面 我之前一直在关注 Flask 教程 该教程的最终产品使您能够使用漂白剂和 Markdown 发布 HTML 并通过 Jinja2 模板传递它 In my models
  • Dockerfile 中的 AWS 凭证

    我需要在容器构建期间从 AWS S3 下载文件 但是我未能成功向构建过程提供 AWS 凭证 而无需将它们实际硬编码到 Dockerfile 中 我收到错误 docker 致命错误 无法找到凭据 尽管之前已经执行过 AWS 配置 此外 我无法