gpt4 book ai didi

python-3.x - 运行 Docker 镜像时没有此类文件或目录错误

转载 作者:行者123 更新时间:2023-12-02 19:52:46 24 4
gpt4 key购买 nike

我正在学习 Docker 概念并尝试为我的项目制作 Docker 镜像。我已经安装了 Docker Desktop for Windows 并使用以下命令成功构建了镜像:

docker build -t ${IMAGE_NAME} .

但是当我运行以下命令时 docker run ${IMAGE_NAME}:${TAG}我收到以下文件未找到错误:

D:\Projects\AI360\deep_auto_backbar_api>docker run dsbyprateekg:prateek_gupta python3: can't open file '/Prepare_Dataset/server_engine/server.py': [Errno 2] No such file or directory



我的项目结构如下:

enter image description here

我的 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 和我的项目结构,并帮助我找出我在这里做错了什么。

最佳答案

当您使用 COPY Prepare_Dataset/ .这将复制目录的内容,而不是目录本身
CMD路径无效/Prepare_Dataset/server_engine/server.py .

你需要使用

COPY Prepare_Dataset/ ./Prepare_Dataset/

所以当你复制时你可以验证
Step 5/7 : COPY Prepare_Dataset/ ./Prepare_Dataset/
---> Using cache
---> 2c5c15c23f65
Step 6/7 : RUN ls | grep "Prepare_Dataset"
---> Running in 54147bd4740c
Prepare_Dataset

最好保持约定以避免将来出现此类错误。
# SEt workdirectory
WORKDIR /app
# Now it will copy to /app/
COPY Prepare_Dataset/ ./Prepare_Dataset
CMD ["Prepare_Dataset/server_engine/server.py"]

您可以使用以下步骤验证您的问题。
COPY Prepare_Dataset/ .
#You will see the content but not the directory
RUN ls /

您将无法看到该目录,但您可以 grep 中的任何文件。
Step 5/7 : COPY Prepare_Dataset/ .
---> Using cache
---> e4eec046c860
Step 6/7 : RUN ls | grep "Prepare_Dataset"
---> Running in 23e4b2aab3d1
The command '/bin/sh -c ls | grep "Prepare_Dataset"' returned a non-zero code: 1

关于python-3.x - 运行 Docker 镜像时没有此类文件或目录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com