首页 > 解决方案 > docker compose 的共享构建上下文

问题描述

我正在使用 docker compose 来构建图像,而不是使用现有图像,我正在使用构建上下文和 docker 文件位置。像这样的东西

version: '3.4'

services:  
  WebApplication:
    image: webapplication:build
    build:
      context: .
      dockerfile: ./WebApplication/Dockerfile
    ports:
      - "8080:80"
    volumes:
      - C:\Abcfolder:C:\Abcfolder 

我的问题是如果我添加其他服务,例如这样

webApplication2:
    image: webapplication2:build
    build:
      context: .
      dockerfile: ./webapplication2/Dockerfile
    volumes:
      - C:\Abcfolder:C:\Abcfolder

这个上下文会被共享还是会为第二个图像再次创建。我有一个包含这两个应用程序的目录结构,因此我无法确定上下文的大小以及它是被复制两次还是一次。我也浏览了官方文档,但找不到与此相关的任何内容。如果有人可以向我指出一些资源或可以帮助我解决这个问题。谢谢

标签: dockerdocker-compose

解决方案


因此,在您的情况下,您有两个服务WebApplicationwebApplication2docker 将分别构建这些服务并将上下文发送给它们。

存储在容器映像中的内容将取决于您使用这两个服务的 Dockerfile 的ADD和语句。COPY

你不能优化只发送一次上下文,你也不应该担心它,因为不会对你产生影响


推荐阅读