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

在docker构建期间从docker映像中复制文件[复制]

太叔繁
2023-03-14

我有一个简单的Dockerfile来将python需求构建到一个zip文件中,然后上传到AWS Lambda。

FROM amazonlinux:2.0.20221004.0

RUN yum install -y python37 && \
    yum install -y python3-pip && \
    yum install -y zip && \
    yum clean all

RUN python3.7 -m pip install --upgrade pip && \
    python3.7 -m pip install virtualenv

COPY aws_requirements.txt .

RUN pip install -r aws_requirements.txt -t ./python
RUN zip -r python.zip ./py

有没有复制python的方法。在dockerfile期间将图像压缩到主机?

共有1个答案

华安民
2023-03-14

使用Buildkit,您可以将结果输出到主机上的目录,而不是推送到注册表。因此,您可以将zip文件放在临时图像中,然后输出:

FROM amazonlinux:2.0.20221004.0 as build

RUN yum install -y python37 && \
    yum install -y python3-pip && \
    yum install -y zip && \
    yum clean all

RUN python3.7 -m pip install --upgrade pip && \
    python3.7 -m pip install virtualenv

COPY aws_requirements.txt .

RUN pip install -r aws_requirements.txt -t ./python
RUN zip -r /python.zip ./py

FROM scratch as artifact
COPY --from=build /python.zip /python.zip

然后运行:

docker build --output type=local,dest=out .

将创建一个< code>out/python.zip文件。

 类似资料:
  • 我要将文件夹从主机操作系统(Windows)复制到docker映像。 我的Docker文件是D:\Programs> Docker文件 复制失败:在生成上下文中找不到文件或被.dockerignore:stat test:文件不存在 我尝试了命令和 我知道发生此错误是因为我复制的路径必须相对于构建上下文(.in docker构建)。它不能是生成上下文之外的系统上的任意路径。 null 更新1 我将

  • 我的问题与这个关于将文件从容器复制到主机的问题有关;我有一个Dockerfile,它获取依赖项,从源代码编译构建工件,并运行一个可执行文件。我还想复制构建工件(在我的例子中,它是由'../target/'中的生成的,但我认为这个问题也适用于JAR、二进制文件等。 用于容器,而不是图像;我是否需要启动一个容器来从其中获取一个文件?在一个脚本中,我尝试在后台以交互模式运行,将文件复制出去,然后杀死容器

  • 你已经经历过了吗?干杯,奥利维尔

  • 目前,我发现谷歌云构建发生在构建docker图像的时候(不像我想象的那样,它会构建我的图像,然后执行我的图像来完成所有的构建)。那是在这篇文章里 谷歌云构建的快速启动 我有一个Dockerfile现在很简单 我有一个单一的下载和提取下载任何工件(zip文件)从最后的单构建运行构建(只有修改的服务器被构建或依赖于上一个CI构建的变化的服务器被构建,就像下游库可能被更改)。第一行只是列出了我需要在一个

  • 我试图遵循使用spring boot fat Jar使用Docker启动和运行的教程。我已经安装了一切,可以从Docker Hub运行Hello World示例。 我已经使用名为的Maven创建了fat jar,并使用以下内容作为我的dokerfile.docker: 如何从一个胖罐子构建docker映像?

  • 我想在我的Ubuntu上运行我的 Scrape.py Docker。我的步骤: 我使用 我创建了一个Docker文件: 请问有什么问题?谢谢