Jed*_*edi 1 docker docker-compose
我有以下文件夹结构:
my_package
|- docker_compose.yml
|- a
|- Dockerfile
|- b
|- Dockerfile
Run Code Online (Sandbox Code Playgroud)
在这里,我的docker-compose.yml是:
version: '2'
services:
a:
build:
context: a
dockerfile: Dockerfile
b:
build:
context: b
dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)
当我运行时,docker-compose build我期望有两个输出图像,a一个用于b.
这是 a/Dockerfile
FROM ubuntu
RUN touch AAA
Run Code Online (Sandbox Code Playgroud)
这是 b/Dockerfile
FROM <a> # NOT SURE WHAT TO PUT HERE
RUN touch BBB
Run Code Online (Sandbox Code Playgroud)
我希望b图像在 rootdirAAA和 中包含两个文件BBB,这需要一个 Dockerfile 依赖于另一个。
这可能吗?是否有任何解决方法可以在一个docker-compose build命令中构建两个 Docker 映像(它们之间存在依赖关系)?
我坚持使用Docker version 1.12.6, build 78d1802(仅与版本 2 语法兼容)。
您可以depends_on在 docker-compose.yml 中使用,我知道它在 docker-compose YAML 版本 3 中可用,以表示服务 B 依赖于 A,而 docker-compose 将遵循您表达的依赖链并首先构建 A。在此处查看depends_on 的说明。
由于 B 来自 A,因为 B 的 Dockerfile 表示文件 AAA 和 BBB 将在服务 B 中可用,只要文件 AAA 和文件 BBB 的权限相同,在这种情况下,您在两个服务 A 中都以 root 身份运行并在执行 touch 命令时为 B 服务。
version: '3'
services:
a:
build:
context: a
image: a
dockerfile: Dockerfile
b:
build:
context: b
image: b
dockerfile: Dockerfile
depends_on:
- a
Run Code Online (Sandbox Code Playgroud)
编辑(由 OP):
depends_on在 v2中使用,但使用数组。image在docker-compose.yml中添加指定生成的镜像,这样b就可以生成了FROM a| 归档时间: |
|
| 查看次数: |
8311 次 |
| 最近记录: |