gpt4 book ai didi

git - 在远程 git 项目的 dockerfile 中添加依赖项以使缓存无效

转载 作者:行者123 更新时间:2023-12-02 19:15:22 25 4
gpt4 key购买 nike

我有一个 github repo,它有一个库,它构建一个 go 二进制文件,它是一个容器的入口点。
我的问题是是否可以在 dockerfile 中向该 repo 添加依赖项(这是为了使缓存的 go 二进制文件无效)。
最简单的解决方案是在源树中拥有 repo,然后在构建二进制文件之前复制它,但是该文件不必存在于最新图像中,如果它不存在会更干净......
任何帮助,将不胜感激!!

最佳答案

如“How to prevent Dockerfile caching git clone ”中详述,或如我在“force a docker build to 'rebuild' a single step ”中建议的那样,您可以将参数传递给docker build为了使缓存无效。

docker build --build-arg \
SHA=$(curl -s 'https://api.github.com/repos/<you>/<GoProject>/commits' | jq -r '.[0].sha') \
-t imageName .
这意味着,如果你的 Go 项目存储库有任何新的提交,你会想要重建你的二进制文件。
你可以把 ARG RUN 之前的命令您希望缓存失效的
FROM xxx
...
...
ARG SHA=LATEST
RUN SHA=${SHA} \
git clone https://github.com/Tencent/mars.git

关于git - 在远程 git 项目的 dockerfile 中添加依赖项以使缓存无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63834012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com