Mar*_*les 6 docker docker-build docker-multi-stage-build
考虑到这些,我想建立以下
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
如文档的本页所述,您可以使用--target选项docker build创建与构建中间阶段相对应的图像。
使用您的Dockerfile,这将相当于以下命令:
docker build --target build -t my-binary-test .
docker build -t my-binary .
docker run -ti my-binary-test # run "test" as specified by "CMD test"
docker run -ti my-binary-test test unit
docker run -ti my-binary-test test integration --all
docker run -ti my-binary-test test functional --only-label=container
Run Code Online (Sandbox Code Playgroud)
请注意,我前面附加test在上面的,因为最后一条指令的最后三个命令程序名称CMD test您的build阶段,实际上将在命令行给出的所有参数被覆盖。为了对语义更深入的了解CMD和ENTRYPOINT指示,我建议阅读的那部分Dockerfile reference。
此外,您可能希望使用--rm选项docker run以便在创建的容器退出时自动删除它们。
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |