Dockerfile中的"--from=builder"是什么意思?

4
我正在尝试理解实现出口操作员的dockerfile。 有人能告诉我这行代码: COPY --from=builder /workspace/manager .ENTRYPOINT ["/manager"] 在这里的含义是什么,以及它们在 ENTRYPOINT ["/manager"] 上尝试做什么?
他们是否在运行管理器脚本,那么应该类似于 ENTRYPOINT ["./manager"] 或者他们只是尝试 cd/manager 文件夹?
2个回答

6
builder 是多阶段 Dockerfile 中之前的一个阶段名称,它很可能正在构建应用程序 manager。一旦 builder 完成,当前阶段将把 manager 文件复制到当前镜像的 /workspace 目录中。entrypoint 简单地指定了容器启动时要运行的程序。
你可以在这里找到更详细的解释: https://docs.docker.com/engine/reference/builder/

你的意思是在Entrypoint[/manager]中有一个文件正在尝试在入口点阶段运行?所以应该是./manager对吗? - solveit
1
我不明白这个问题。ENTRYPOINT是一个数组,你可以在其中指定要运行的程序及其默认参数。 - Burak Serdar
我的问题是什么是/manager的意思?我理解entrypoint只是执行其中的内容。但我的问题是,/manager到底会做什么?它会运行一个名为"manager"的文件吗?还是/manager与golang和kubebuilder有关? - solveit
1
./manager将运行./manager程序。根据您的问题,该管理程序是在Dockerfile的早期阶段构建的。 - Burak Serdar
你认为在ENTRYPOINT中,应该是./manager而不是/manager吗?(这里缺少一个点:https://github.com/monzo/egress-operator/blob/master/Dockerfile#L27) - solveit
1
你需要这个点。没有这个点,exec会依赖于PATH搜索,在Dockerfile中通常没有设置路径。 - Burak Serdar

5

通常,COPY命令会将文件从构建上下文复制到镜像中。但是使用--from参数时,它会从先前的构建阶段的文件系统中进行复制。在该命令之前,你会看到FROM whatever AS builder及其一些构建指令,所以它是从那里复制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接