【发布时间】:2018-09-25 09:51:28
【问题描述】:
场景
- 多阶段构建将多个 Dockerfile 部分合并为一个
- 中间和最终阶段可以从上层阶段复制文件
- 建议最后阶段只包含所需的二进制文件。
考虑到这些,我想建立关注
FROM fat-base as build
RUN setup unit test frameworks
RUN setup integration test frameworks
RUN setup functional test frameworks
RUN setup all heavy lifting stuff
CMD test
FROM slim-base
COPY --from=build /runtime/binary /bin/binary
ENTRYPOINT /bin/binary
基础阶段的重用
- 我不想在中间阶段运行测试,而是在映像之外运行它们,以便我可以重新排序测试序列并在管道层添加更多开关(Jenkins CI、Travis 等)
- 我希望能够使用构建的基础映像。
- 按照测试阶段的建议,可以使用辅助
Dockerfile.test。不过,我想维护一个包含所有阶段的 Dockerfile。
这是运行的要求
docker build -t my-binary .
docker run -ti my-binary[0] unit
docker run -ti my-binary[0] integration --all
docker run -ti my-binary[0] functional --only-label=container
问题
- 目前是否支持此功能?
- 有解决方法吗?
【问题讨论】:
标签: docker docker-build docker-multi-stage-build