程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AWS Codeartifact 和 docker 构建缓存大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决AWS Codeartifact 和 docker 构建缓存?

开发过程中遇到AWS Codeartifact 和 docker 构建缓存的问题如何解决?下面主要结合日常开发的经验,给出你关于AWS Codeartifact 和 docker 构建缓存的解决方法建议,希望对你解决AWS Codeartifact 和 docker 构建缓存有所启发或帮助;

我正在尝试使用 AWS Codeartifact 作为我的 pip 存储库。 每次构建 docker 镜像时,我都需要登录或生成令牌, 我试过这个:How to use AWS CodeArtifact *within* A Dockerfile in AWSCodeBuild

但是在每次构建中,pip.conf 文件都是不同的(新令牌),这会破坏 docker 缓存。

现在我想避免预装所有软件包的基础镜像。

有人有解决这个问题的方法吗?

谢谢!

解决方法

看起来 docker buildkit 就是答案。

生成文件:

docker_build:
    @$(eval CODEARTIFACT_AUTH_TOKEN := $(sHell aws codeartifact get-authorization-token --domain your-domain --domain-owner your-id --region your-region --query authorizationToken --output text --duration-seconds 900))
    @pip config set global.index-url "https://aws:${CODEARTIFACT_AUTH_TOKEN}@<your-domain>-<your-id>.d.codeartifact.<your-region>.amazonaws.com/pypi/your-repo/simple/"
    cp ~/.config/pip/pip.conf /tmp/pip.conf
    DOCKER_BUILDKIT=1 docker build --progress=plain --secret id=pip.conf,src=/tmp/pip.conf -t tmp_docker_image .

Dockerfile:

FROM python:3.8.8-slim-buster
WORKDIR /code
ADD requirements.txt /code/requirements.txt
RUN --mount=type=secret,id=pip.conf,dst=/root/.pip/pip.conf \
pip install -r ./requirements.txt

我已经测试了几次,每次运行都更改了令牌,看起来不错。

这个有帮助:https://dev.to/hugoprudente/managing-secrets-during-docker-build-3682

大佬总结

以上是大佬教程为你收集整理的AWS Codeartifact 和 docker 构建缓存全部内容,希望文章能够帮你解决AWS Codeartifact 和 docker 构建缓存所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。