在使用Docker时,有没有办法对其他子目录中的文件使用COPY命令?

r6hnlfcb  于 2023-05-06  发布在  Docker
关注(0)|答案(2)|浏览(256)

我的项目的当前目录看起来像这样:

project
   \---- file1.dockerfile
   \---- scripts
             \-- venv.sh
             \-- task-name
                       \-- run-script.sh
   \---- data
           \-- data1.json

file1.dockerfile中,我有以下内容:

FROM python:3.10.10
WORKDIR /app
COPY ./scripts/venv.sh ./scripts/task-name/run-script.sh ./data/data1.json /app/
RUN /app/venv.sh && poetry shell
CMD ["bash", "/app/run-script.sh"]

当我运行它时,我得到以下错误:

ERROR: failed to solve: failed to solve with frontend dockerfile.v0: failed to build LLB: failed to compute cache key: "/scripts/venv.sh" not found: not found

我尝试将copy语句更改为COPY . .,但似乎没有解决任何问题。我做错了什么?

编辑

Poetry在第一个shell脚本中初始化。

zsbz8rwp

zsbz8rwp1#

请检查您的.dockerignore文件,因为www.example.comvenv.sh可能与某些模式匹配,因此没有被复制。

kgsdhlau

kgsdhlau2#

有几点你需要检查:
1.检查你的.dockerignore看看你是否忽略了文件或文件夹或所有内容(*).
1.尝试运行docker build --no-cache
1.你如何运行你的Docker构建命令?你在使用vscode或其他工具吗?请确保您的cd到您的project文件夹.

相关问题