我正在学习 Docker 概念并尝试制作我的项目的 Docker 映像。我已经安装了适用于 Windows 的 Docker Desktop 并使用以下命令成功构建了映像:
docker build -t ${IMAGE_NAME} .
但是当我运行以下命令时 docker run ${IMAGE_NAME}:${TAG}
我收到以下文件未找到错误:
D:\Projects\AI360\deep_auto_backbar_api>docker run dsbyprateekg:prateek_gupta python3: 无法打开文件 ‘/Prepare_Dataset/server_engine/server.py’: [Errno 2] 没有那个文件或目录
我的项目结构如下所示:
我的 Dockerfile.txt 有以下说明:
FROM python: 3.6-stretch
MAINTAINER PrateekG
# install build utilities
RUN apt-get update && \
apt-get install -y gcc make apt-transport-https ca-certificates build-essential
# check our python environment
RUN python3 version RUN pip3 --version
# Installing python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy all the files from the project's root to the working directory
COPY Prepare_Dataset/ .
# Running Python Application
CMD ["python3", "/Prepare_Dataset/server_engine/server.py"]
我怀疑我遗漏了与文件路径相关的内容。请查看我的 Dockerfile 和我的项目结构,并帮助我找出我在这里做错了什么。
原文由 ebsavvy 发布,翻译遵循 CC BY-SA 4.0 许可协议
当你使用
COPY Prepare_Dataset/ .
这将复制目录的内容,而不是目录本身所以CMD
路径变得无效/Prepare_Dataset/server_engine/server.py
你需要使用
所以当你复制时你可以验证
最好保持惯例以避免将来出现此类错误。
您可以使用以下步骤验证您的问题。
您将看不到该目录,但可以 grep 查找其中的任何文件。