当前位置: 首页 > 知识库问答 >
问题:

多重FROMs-什么意思

唐珂
2023-03-14

我想在github上为Linkurious项目构建一个docker映像,它需要Neo4j数据库和node.js来运行。

我的第一个方法是为我的图像声明一个基图像,其中包含Neo4J。参考文档没有以任何有用的方式定义“基本图像”:

基图像:没有父图像的图像是基图像

从中我读到,我可能只有一个基本图像,如果该图像本身没有基本图像。

我很困惑...

共有1个答案

邓卓
2023-03-14

截至2017年5月,可以在单个DockerFile中使用来自的多个
参见“构建器模式与Docker中的多阶段构建”(Alex Ellis著)和Tónis Tiigi著PR 31257。

一般语法包括在Dockerfile中添加from附加次数--无论最后一个from语句是最终的基本图像。要从中间图像复制工件和输出,请使用copy--from=

FROM golang:1.7.3 as builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html  
COPY app.go    .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app    .
CMD ["./app"]  

结果将是两个图像,一个用于构建,一个只用于结果应用程序(小得多)

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

multi               latest              bcbbf69a9b59        6 minutes ago       10.3MB  
golang              1.7.3               ef15416724f6        4 months ago        672MB  

什么是基本图像?

一组文件,加上expose'd端口、entrypointcmd
您可以添加文件并基于该基本映像生成新映像,使用一个新的dockerfilefrom指令开始:from后面提到的映像是新映像的“基本映像”。

这是否意味着,如果我在from指令中声明neo4j/neo4j,当我的映像运行时,neo数据库将自动运行并在7474端口的容器中可用?

只有在不覆盖cmdentrypoint.
的情况下,才可以使用图像本身:如果必须添加与neo4j相关的文件,则可以使用来自neo4j/neo4j

 类似资料:
  • 问题内容: 通过阅读Backbone.js源代码,我看到了以下内容: 什么啊 在这里使用它的目的是什么? 问题答案: 什么意思 [MDN]是带一个参数且始终返回的前缀关键字。 例子 有什么意义呢? 似乎很没用,不是吗?如果它总是返回,那么仅使用自身又有什么问题呢? 在理想的世界中,我们将能够安全地使用它:它比更加简单易懂。但是,如果您以前从未注意到过,这不是一个完美的世界,尤其是在涉及Javasc

  • 我不知道问号(< code >?)在java里代表,我在做一个小程序,一个Nim-game。我们在一本书里寻求帮助,看到了这样一句话: 我不明白,表示,它可以与if语句有关但您将其放在变量中吗?并且可以是“其他”?(我刚才说的这些事情可能会很误导)

  • 那么,在Java中,你们都用什么来处理它们呢?

  • 问题内容: 我写Java已有一段时间了,今天我遇到了以下声明: 请注意数组声明中的“点点点”,而不是通常的括号[]。显然可以。实际上,我写了一个小测试并验证了它的有效性。因此,我提取了Java语法,以查看参数声明语法的位置,但未找到任何内容。 那么对那里的专家来说,这是如何工作的呢?它是语法的一部分吗?另外,虽然我可以像这样声明函数,但不能像这样在函数体内声明数组。 无论如何,您知道在哪里记录了此

  • 但是得到了错误: