我需要在容器构建期间从 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(使用前将#替换为@)