如何为 docker 文件正确复制 requirements.txt
how to correctly copy requirements.txt for docker file
这是我当前的文件夹结构:
我在 FinTechExplained_Python_Docker 文件夹中。我的 Dockerfile 如下所示:
FROM python:3.8-slim-buster
WORKDIR /src
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "main.py"]
然而,当我运行这个命令
docker build --tag FinTechExplained_Python_Docker .
我收到这个错误
ERROR [3/5] COPY requirements.txt requirements.txt 0.0s
------
> [3/5] COPY requirements.txt requirements.txt:
------
failed to compute cache key: "/requirements.txt" not found: not found
我做错了什么?
编辑:
我也试过改成:
COPY str/requirements.txt requirements.txt:
但是我仍然会得到这样的错误:
failed to compute cache key: "/src/requirements.txt" not found: not found
也许第二个 COPY 语句也要更改,但不确定如何更改
从 Dockerfile 构建映像时,它会从 Dockerfile 所在的目录(在您的情况下为 FinTechExplained_Python_Docker
)搜索文件。
所以基本上要求位于 FinTechExplained_Python_Docker/src/requirements.txt
,但 docker 在 FinTechExplained_Python_Docker/requirements.txt
搜索它们。
要解决此问题,您必须将第 5 行更改为:
COPY src/requirements.txt requirements.txt
您需要指定与构建上下文相关的 COPY 语句的来源,如下所示
FROM python:3.8-slim-buster
WORKDIR /src
COPY src/requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY src/ .
CMD [ "python", "main.py"]
哦,我想我明白你为什么要 failed to compute cache key...
。
当您使用 COPY 在 Dockerfile 中复制文件时,您必须传递 Directory 文件应保存的位置 作为第二个参数。
喜欢COPY LOCAL_PATH_TO_FILE SERVER_PATH_TO_DIRECTORY
你的情况:
FROM python:3.8-slim-buster
WORKDIR /src
COPY src/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY src/ .
CMD [ "python", "main.py"]
这是我当前的文件夹结构:
我在 FinTechExplained_Python_Docker 文件夹中。我的 Dockerfile 如下所示:
FROM python:3.8-slim-buster
WORKDIR /src
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "main.py"]
然而,当我运行这个命令
docker build --tag FinTechExplained_Python_Docker .
我收到这个错误
ERROR [3/5] COPY requirements.txt requirements.txt 0.0s
------
> [3/5] COPY requirements.txt requirements.txt:
------
failed to compute cache key: "/requirements.txt" not found: not found
我做错了什么?
编辑:
我也试过改成:
COPY str/requirements.txt requirements.txt:
但是我仍然会得到这样的错误:
failed to compute cache key: "/src/requirements.txt" not found: not found
也许第二个 COPY 语句也要更改,但不确定如何更改
从 Dockerfile 构建映像时,它会从 Dockerfile 所在的目录(在您的情况下为 FinTechExplained_Python_Docker
)搜索文件。
所以基本上要求位于 FinTechExplained_Python_Docker/src/requirements.txt
,但 docker 在 FinTechExplained_Python_Docker/requirements.txt
搜索它们。
要解决此问题,您必须将第 5 行更改为:
COPY src/requirements.txt requirements.txt
您需要指定与构建上下文相关的 COPY 语句的来源,如下所示
FROM python:3.8-slim-buster
WORKDIR /src
COPY src/requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY src/ .
CMD [ "python", "main.py"]
哦,我想我明白你为什么要 failed to compute cache key...
。
当您使用 COPY 在 Dockerfile 中复制文件时,您必须传递 Directory 文件应保存的位置 作为第二个参数。
喜欢COPY LOCAL_PATH_TO_FILE SERVER_PATH_TO_DIRECTORY
你的情况:
FROM python:3.8-slim-buster
WORKDIR /src
COPY src/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY src/ .
CMD [ "python", "main.py"]