如何解决Dockerfile:是否允许多个FROM?
我正在创建一个需要包含两个镜像的Docker镜像:
- 例如:Foo公司对Jenkins支持功能的印象:
docker.foo.com/jenkins-build:latest
- cypress/included:4.12.1
此图像将被标记为docker.foo.com/cypress-build
Dockerfile
脚本如下:
# Image containing company Foo's Jenkins build
FROM docker.foo.com/jenkins-build:latest
# Main image that include all operating system dependencies necessary to run Cypress,# but NOT the test runner itself.
FROM cypress/included:4.12.1
此Dockerfile
在具有多个FROM
的脚本编写中是否有效?
如果没有,那么必须做些什么来纠正它?
谢谢,非常感谢您的反馈!
解决方法
是的,允许多条FROM
行。这是multi-stage build实现的一部分。每条FROM
行都作为一个新映像开始一个新的阶段,该映像仅包括该FROM
行的文件系统层和配置。最后标记的图像要么是要构建的最后一个阶段,要么是目标阶段(如果您指导构建以标记特定阶段的话)。
请注意,多阶段不是某种形式的多重继承或图像合并过程。那是不存在的,并且没有实现它的简单方法。多阶段构建旨在允许将构建环境移至docker环境,而无需在分布式映像中包含编译器和其他构建工具。通过允许使用COPY --from
语法在阶段之间复制文件来实现此目的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。