Docker:如何在配置项上下文中处理“最新”,自动更新但没有冗余下载?

o7jaxewo  于 2022-11-22  发布在  Docker
关注(0)|答案(1)|浏览(73)

我想实现的是,我给予一个同事一个docker容器,让他在他的PC上本地运行(通过docker run)。我经常通过Gitlab CI构建这个容器,并将它与一个版本标签(Semver 2.0)一起推送到Nexus。
同事应该获得一个简单的bash脚本,如下所示:

#!/bin/bash
docker run -it -p 8080:80 nexus.company.net/goodservice:latest --dependency-overrides=local
echo "find the good service under http://localhost:8080, have fun!"

(“--dependency-overrides”是我刚刚实现的一个简单方法,这样他就可以在没有Redis的情况下运行整个过程,我用这种方法替换了DI容器中的实现。
问题:
曾小姜(说:1.0.1-pre.5),“latest”不再执行任何更新。
我可以很容易地修复它使用“--pull=always”对docker运行,但它是一个.NET图像的整体大小约100 MB(它的高山已经,但它仍然是很多)。同事是在一个计量4G互联网连接。
有没有什么方法可以让docker检查“latest”现在是不是其他的东西?在文档中没有找到任何东西。
(If有人从Docker(或CNCF?)读到:如果有一个像“--pull=updated”这样的选项就太好了。:-))
有什么想法吗?

dfddblmv

dfddblmv1#

在脚本中添加一个docker pull命令,它只会在图像更新后才拉入图像。

#!/bin/bash
docker pull nexus.company.net/goodservice:latest
docker run -it -p 8080:80 nexus.company.net/goodservice:latest --dependency-overrides=local
echo "find the good service under http://localhost:8080, have fun!"

如果您希望限制需要下载的数据量,则需要确保在创建新版本时通常只访问图像的最后一层。这样,您的同事只需要下载最后一层,而不是整个图像。

相关问题