podman-compose是否支持构建阶段的卷?如果支持,语法是什么?
我想为 podman-compose 编写一个 container-compose.yaml 文件,使其实现与构建阶段的卷相同的效果,即:
podman build . -v my_host_dir:my_container_dir
不是:
podman run . -v my_host_dir:my_container_dir
我本希望这是:
services:
my_container:
build:
volumes:
- my_host_dir:my_container_dir
与之相对的是:
services:
my_container:
volumes:
- my_host_dir:my_container_dir
当我尝试那样做时,虽然没有报错,但在那个构建步骤中,该卷似乎并不可用。
解决方案
podman-compose 将其能力定义为基于 Compose规范,而 build: 块不允许 volumes:。在实现中,生成 podman build 参数的函数 不会查找 volumes: 键,也不会生成 -v 选项。这似乎不是Podman Compose支持的一个选项。
虽然 podman build 确实支持一个 -v 选项,但在Podman命令与等效的Docker命令保持一致的范围内,docker build 不支持 -v 选项,我可能不会依赖这项能力。
Containerfile(和 Dockerfile)RUN 命令支持逐条的 RUN --mount 选项,具备大多数从全局卷挂载中需要的能力,包括将主机文件系统的部分挂载为只读,或拥有持久的构建缓存。就这点而言,我更倾向于作为一个有更广泛支持的选项。例如,
RUN --mount=type=bind,source=build,target=/host-build \
cp -a /host-build/dist /app/dist
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。