【问题标题】:Copy files from base image to current building image将文件从基础镜像复制到当前的建筑镜像
【发布时间】:2019-10-14 05:30:53
【问题描述】:

尝试使用我构建的另一个自定义镜像 ( Y ) 构建一个 docker 镜像 ( X )。在这里,我正在尝试将文件夹从基本图像 Y 复制到 X,如下所示。

FROM some-image as base

COPY --from=base /root/.m2 /root

RUN mkdir -p /build

但这是抛出错误invalid from flag value base: pull access denied for base, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

我怎样才能做到这一点?

【问题讨论】:

    标签: docker dockerfile containers


    【解决方案1】:

    您不是从某个基本图像中应对,而是试图在同一个图像中进行复制。

    你需要有第二个阶段才能使用 COPY --from 你不能指出 --从到您当前正在更改的同一阶段。

    docker-cli-issues/1559

    这是最简单的例子,

    • 在基础镜像中编译c程序
    • 从基础镜像复制编译的程序
    • 因此,您的最终图像将只有 5MB
    FROM alpine as build-env
    RUN apk add --no-cache build-base
    WORKDIR /app
    COPY . .
    # Compile the binaries
    RUN gcc -o hello helloworld.c
    FROM alpine
    COPY --from=build-env /app/hello /app/hello
    WORKDIR /app
    CMD ["/app/hello"] 
    

    你好.c

    # include <stdio.h>
      int main(){
       printf("Hello World!");
       return 0;
    }
    

    【讨论】:

    • 如果某个答案解决了您的问题,请考虑接受该答案。这是 meta.stackexchange.com/questions/5234/... 然后返回这里并使用勾选/复选标记执行相同操作,直到它变为绿色。这通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,可能想要发布(更多)答案。您将获得积分,并鼓励其他人帮助您。欢迎使用 Stack!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2017-12-31
    • 2019-04-03
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多