【问题标题】:Docker copy: failed to compute cache key/error from senderDocker 副本:无法计算来自发件人的缓存键/错误
【发布时间】:2021-10-05 01:00:58
【问题描述】:

我正在尝试从 Dockerfile 创建 Docker 映像,在执行此操作时,我在 COPY 步骤中遇到以下错误:

failed to compute cache key: not found: not found 使用相对路径时,以及 error from sender: Create file .......\Temp\empty-dir347165903\C:: The filename, directory name, or volume label syntax is incorrect 使用绝对值时

我正在尝试的确切命令是 COPY main.py ./ 重要说明是没有任何 .dockerignore 文件,没有设置容器,main.py 和 Dockerfile 都位于同一目录中

这是 Dockerfile 本身的样子:

From public.ecr.aws/lambda/python:3.8
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY main.py ./
RUN mkdir chrome
RUN curl -SL (chromedriver link here) > chromedriver.zip
RUN unzip chromedriver.zip -d chrome/
RUN rm chromedriver.zip

【问题讨论】:

  • 您正在运行的实际docker build 命令是什么?该 Dockerfile 是否应该有一个默认的 CMD 来运行?你应该设置一个WORKDIR而不是图像的根目录吗?
  • 我运行的命令是 docker build - CMD实际上是在Dockerfile中,我只是忘了包含它,那是CMD [“main.main”]。并且图像的根目录应该可以解决问题,所以我不打算更改它

标签: python docker aws-lambda dockerfile


【解决方案1】:

我正在运行的命令是docker build - < Dockerfile

此语法仅在您的构建不使用上下文时才有效。 docker build 命令需要一个参数,这不是 Dockerfile,而是构建上下文。通常它是一个目录,可以是一个远程 git 存储库,或者您可以使用 - 语法在标准输入上传递该目录的 tar 文件。传递 Dockerfile 而不是构建上下文有一个例外,但是当这样做时,您不能有任何从构建上下文中提取文件的 COPY 或 ADD 步骤。相反,您几乎肯定想要:

docker build .

使用当前目录作为构建上下文执行构建,其中还包含 Dockerfile。之后,您可能希望为生成的图像添加标签:

docker build -t your-image:latest .

(感谢David 提供指向Dockerfile as input 语法的指针。)

【讨论】:

猜你喜欢
  • 2021-07-27
  • 1970-01-01
  • 2023-02-12
  • 2022-06-29
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 2021-11-14
相关资源
最近更新 更多