docker - 将文件从基础图像复制到当前建筑物图像

标签 docker dockerfile containers

尝试使用由我构建的另一个自定义镜像(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
我该如何实现?

最佳答案

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

You need to have a second stage to use COPY --from you can not point --from to the same stage you are currently changing.



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"] 
    

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

    关于docker - 将文件从基础图像复制到当前建筑物图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58370581/

    相关文章:

    c++ - 为什么 deques 默认用作堆栈的底层容器,而 vectors 可以做到这一点?

    mongodb - Docker Compose 了解端口映射

    ubuntu - docker: 无法连接到 Docker 守护进程

    docker - 来自openshift命名空间的Openshift特权容器访问服务

    docker - 使用 lint 命令构建 docker go 应用程序

    mysql - 如何编辑 docker mysql 镜像并增加连接限制

    linux - 在 Docker 容器中添加交互式用户输入,例如 `read`

    对于嵌套的忽略文件,Docker 构建有时会在 "file not found or excluded by .dockerignore"上失败

    ssh - Docker alpine image 的基本命令不起作用

    c++ - 为从其模板成员函数调用中已知的类型创建新容器的类