当前位置: 首页 > 知识库问答 >
问题:

构建依赖于本地“DockerFile”的docker映像

阳修永
2023-03-14

我有以下文件夹结构:

my_package
|- docker_compose.yml
|- a
   |- Dockerfile
|- b
   |- Dockerfile

这里,我的docker-compose.yml是:

version: '2'
services:
  a:
    build: 
      context: a
      dockerfile: Dockerfile
  b:
    build: 
      context: b 
      dockerfile: Dockerfile

当我运行docker-compose build时,我希望有两个输出图像,一个用于A,一个用于B

FROM ubuntu
RUN touch AAA
FROM <a> # NOT SURE WHAT TO PUT HERE
RUN touch BBB

我使用Docker版本1.12.6,构建78d1802(仅与版本2的语法兼容)。

共有1个答案

祁承望
2023-03-14

您可以在docker-compose.yml中使用depends_on,我知道在docker-compose YAML Version3中可以使用它来表示服务B依赖于A,而docker-compose将遵循您表示的依赖链并首先构建A。请参见这里对depends_on的解释。

由于B来自A,正如您的Dockerfile for B所表达的那样,只要文件AAA和文件BBB的权限相同,那么文件AAA和BBB都将在服务B中可用,并且在本例中,当您执行touch命令时,您在服务A和服务B中都以root身份运行。

version: '3'
services:
  a:
    build: 
      context: a
      image: a
      dockerfile: Dockerfile
  b:
    build: 
      context: b 
      image: b
      dockerfile: Dockerfile
    depends_on: 
    - a

编辑(按OP):

    null
 类似资料:
  • 我试图构建一个micronaut(V1.0.4)应用程序的本机映像。 此应用程序使用Consul作为服务发现。 我使用选项创建了应用程序: 有人知道问题出在哪里吗?

  • 配置 jar 包需要在 compile 中添加响应依赖。下面的代码添加了 libs 文件夹中的所有 jar 作为依赖。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) } android { ... } 注意:dependencies DSL 标签是标准 Gradle API 中的一部分,所以它不属于

  • 这是我编写的Dockerfile文件,但是构建镜像的时候发现没有执行npm install,自然也不会有dist文件,不知道是哪里写的有问题,请教一下大家

  • 当你首次启动 vite 时,你可能会注意到打印出了以下信息: Optimizable dependencies detected: (侦测到可优化的依赖:) react, react-dom Pre-bundling them to speed up dev server page load...(将预构建它们以提升开发服务器页面加载速度) (this will be run only when

  • DockerFile: 在之后,GPG行显示为红色,图像创建失败。为什么?

  • 在Dockerfile中运行yarn install时无法获取node\u modules文件夹 docker-compose.yml package.json Dockferfile文件 docker-compose build时步骤RUN纱线安装的输出: 运行命令:docker compose运行web bash以进入容器 没有node_modules文件夹,但稍后在容器内运行时:纱线安装输出