是否有可能以docker-compose up
仅在存储库中不存在映像的情况下才能构建的方式运行?
我正在研究一种将在两种不同环境中运行的测试方案:本地在笔记本电脑上,以及在服务器上作为测试自动化的一部分。我的docker-compose文件看起来像这样:
services:
my-service1:
build: "./local-repo1"
image: "image1"
my-service2:
build: "./local-repo2"
image: "image2"
...
如果我在本地存储目录所在的本地运行,则运行良好。如果我尝试在从docker存储库中提取的服务器上运行它,则会抱怨找不到构建路径。如果我删除该build
属性,则它可以在服务器上正常运行,但是除非事先构建映像,否则它不会在本地运行。
有没有办法让它仅在映像不存在的情况下尝试构建?如果不是,我可以尝试一些解决方法,但是我更喜欢只使用一个处理每种情况的docker-compose文件。
您可以docker-compose pull
用来获取图像。然后,如果它们已经存在,则Compose不会尝试再次构建它们。
要确保避免重建,可以使用--no-build
。
docker-compose pull
docker-compose up -d --no-build
真正的问题是您要指定构建上下文,但是随后尝试在不存在该构建上下文的情况下使用docker-compose。
当docker-compose运行时, 即使它没有计划进行构建 ,它也会验证构建上下文至少存在。如果没有,它将失败。
满足此要求所需要做的就是为任何缺少的构建上下文创建一个空目录。那应该使docker-compose足够快乐地运行。
mkdir -p local-repo1 local-repo2
如何将多个标签附加到一个 Docker 映像?是否可以使用一个 Docker 文件创建多个标记? 不知何故,这是可能的;例如会得到几个图像,其中一些有多个标签:
问题内容: 我想在使用Selenium WebDriver和Docker而不是虚拟机的同一台计算机上运行多个Internet Explorer版本。据我所知,Docker完全在Linux上运行,这将使Docker中的IE无法实现。我之所以问是因为我看到Docker在Microsoft Azure上运行。 问题答案: Docker当前不适用于基于Windows的应用程序。Azure上的Docker是
问题内容: 我正在docker容器内的GCE上运行jenkins实例,并希望从此Jenkinsfile和Github执行多分支管道。我正在为此使用GCE詹金斯教程。这是我的 我总是得到一个错误: 为了使docker在jenkins中工作,我需要更改什么? 问题答案: 看起来像DiD(Docker中的Docker),最近的一期杂志指出这是有问题的。 请参阅“ 在您的CI或测试环境中使用Docker-
我有如下所示的docker图像名称列表。 我希望将其替换为 有很多这样的docker图像名称,我想从完整的名称中删除docker图像标签。我如何能一次全部替换?记事本中的任何脚本或格式。有人能帮忙吗? 谢谢
我一直在使用minikube在本地测试库伯内特斯,在minikube中,我们可以通过使用命令来使用本地docker镜像。 我开始探索微型k8。在运行Ubuntu 18的机器上使用快照安装microk8。 除了创建本地 docker 注册表之外,有没有办法将本地 docker 映像与 microk8s 一起使用,就像我们使用 minikube 进行测试和开发一样? 命令也不工作,它显示: 命令‘mi
什么会阻止 命令完成?它永远不会返回到命令提示符或报告任何类型的错误。相反,它反复在“新”,“已分配”,“就绪”和“开始”之间切换。 这是命令: 这是来自“DevOps 2.1工具包 - Docker群”,维克多·法西奇的一本书,我遇到了一个我无法克服的问题...... 我试图在一群三个节点上运行一个反向代理服务,所有节点都在LinuxMint系统上本地运行,而< code>docker serv