Docker Blocker-Docker在项目和容器中的目录结构中找不到csv文件

Docker Blocker-Docker在项目和容器中的目录结构中找不到csv文件,docker,Docker,鉴于此Dockerfile: FROM python:3.8-slim-buster EXPOSE 5000 ADD . /data/sample.csv # Keeps Python from generating .pyc files in the container ENV PYTHONDONTWRITEBYTECODE=1 # Turns off buffering for easier container logging ENV PYTHONUNBUFFERED=1 # In

鉴于此Dockerfile:

FROM python:3.8-slim-buster

EXPOSE 5000

ADD . /data/sample.csv

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app
我可以在本地计算机上运行此flask应用程序,没有错误。Pandas从csv获取数据,并将其显示在函数的返回语句中(如下所示):

但是,在创建Dockerfile和requirements.txt并构建映像后,在运行容器时,此错误仍然存在。(请注意,错误消息中的文件路径斜杠与我的代码中的斜杠方向相反??)

[2021-04-30 01:34:04+0000][1][INFO]启动gunicorn 20.0.4
[2021-04-30 01:34:04+0000][1][INFO]收听地点:http://0.0.0.0:5000 (1)
[2021-04-30 01:34:04+0000][1][INFO]正在使用辅助程序:同步
[2021-04-30 01:34:04+0000][8][INFO]带pid的引导工作程序:8
[2021-04-30 01:34:05+0000][8][错误]工作进程中出现异常
回溯(最近一次呼叫最后一次):
文件“/usr/local/lib/python3.8/site packages/gunicorn/arbiter.py”,第583行,在spawn_worker中
worker.init_进程()
文件“/usr/local/lib/python3.8/site packages/gunicorn/workers/base.py”,第119行,在init_进程中
self.load_wsgi()
文件“/usr/local/lib/python3.8/site packages/gunicorn/workers/base.py”,第144行,在load\u wsgi中
self.wsgi=self.app.wsgi()
文件“/usr/local/lib/python3.8/site packages/gunicorn/app/base.py”,第67行,在wsgi中
self.callable=self.load()
文件“/usr/local/lib/python3.8/site packages/gunicorn/app/wsgiapp.py”,第49行,已加载
返回self.load_wsgiapp()
文件“/usr/local/lib/python3.8/site packages/gunicorn/app/wsgiapp.py”,第39行,在load_wsgiapp中
return util.import\u app(self.app\u uri)
导入应用程序中的文件“/usr/local/lib/python3.8/site packages/gunicorn/util.py”,第358行
mod=importlib.import\u模块(模块)
导入模块中的文件“/usr/local/lib/python3.8/importlib/_init__.py”,第127行
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1014行,在\u gcd\u导入中
文件“”,第991行,在“查找”和“加载”中
文件“”,第975行,在“查找”和“加载”中解锁
文件“”,第671行,在\u加载\u解锁
exec_模块中第783行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“/app/app.py”,第5行,在
df=pd.read\u csv(“data\sample.csv”)
文件“/usr/local/lib/python3.8/site packages/pandas/io/parsers.py”,第610行,以只读形式
返回读取(文件路径或缓冲区,kwds)
文件“/usr/local/lib/python3.8/site packages/pandas/io/parsers.py”,第462行,已读
parser=TextFileReader(文件路径或缓冲区,**kwds)
文件“/usr/local/lib/python3.8/site packages/pandas/io/parsers.py”,第819行,在__
self.\u engine=self.\u make\u engine(self.engine)
文件“/usr/local/lib/python3.8/site packages/pandas/io/parsers.py”,第1050行,在“make”引擎中
返回映射[引擎](self.f,**self.options)#类型:忽略[调用参数]
文件“/usr/local/lib/python3.8/site packages/pandas/io/parsers.py”,第1867行,在__
自开把手(src、kwds)
文件“/usr/local/lib/python3.8/site packages/pandas/io/parsers.py”,第1362行,位于打开的句柄中
self.handles=获取句柄(
文件“/usr/local/lib/python3.8/site packages/pandas/io/common.py”,第642行,在get\u句柄中
把手=打开(
***FileNotFoundError:[Errno 2]没有这样的文件或目录:“data\\sample.csv”***
[2021-04-30 01:34:05+0000][8][INFO]工人退出(pid:8)
[2021-04-30 01:34:05+0000][1][INFO]正在关闭:主机
[2021-04-30 01:34:05+0000][1][INFO]原因:工作进程无法启动

尝试了不同的路径,绝对路径,所有内容,Docker无法识别此目录/文件的存在。我需要容器化的实际应用程序最终必须能够访问容器外的数据,但作为第一步,我甚至无法让Docker识别应用程序内的此数据。因此,所有Docker专家,请请注意,让我知道我在这里明显缺少了什么可能很简单的东西。非常感谢。

请记住,您在Docker容器内的Linux环境中运行,
\
不是Linux路径分隔符。当您编写
data\sample.csv
时,这与
data/sample.csv
不同。我怀疑你修好你的路径,事情会更好。谢谢你的检查。我当前的路径是一条斜线。(“data\sample.csv”)那么,你建议我这样写这行吗?“data/sample.csv”?这就是我的建议,是的。谢谢。我会做出更改并报告。
from flask import Flask
import pandas as pd 
app = Flask(__name__)

df = pd.read_csv("data\sample.csv")
lst_one = df['col1'].to_list()
lst_two = df['col2'].to_list()
lst_three = df['col3'].to_list()

lang = "World!"

@app.route('/')
def hello_world():
    return f'Hello, {lang} {lst_one}, {lst_three}'
[2021-04-30 01:34:04 +0000] [1] [INFO] Starting gunicorn 20.0.4
[2021-04-30 01:34:04 +0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
[2021-04-30 01:34:04 +0000] [1] [INFO] Using worker: sync
[2021-04-30 01:34:04 +0000] [8] [INFO] Booting worker with pid: 8
[2021-04-30 01:34:05 +0000] [8] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/app/app.py", line 5, in <module>
    df = pd.read_csv("data\sample.csv")
  File "/usr/local/lib/python3.8/site-packages/pandas/io/parsers.py", line 610, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/parsers.py", line 462, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/parsers.py", line 819, in __init__
    self._engine = self._make_engine(self.engine)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/parsers.py", line 1050, in _make_engine
    return mapping[engine](self.f, **self.options)  # type: ignore[call-arg]
  File "/usr/local/lib/python3.8/site-packages/pandas/io/parsers.py", line 1867, in __init__
    self._open_handles(src, kwds)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/parsers.py", line 1362, in _open_handles
    self.handles = get_handle(
  File "/usr/local/lib/python3.8/site-packages/pandas/io/common.py", line 642, in get_handle
    handle = open(
***FileNotFoundError: [Errno 2] No such file or directory: 'data\\sample.csv'***
[2021-04-30 01:34:05 +0000] [8] [INFO] Worker exiting (pid: 8)
[2021-04-30 01:34:05 +0000] [1] [INFO] Shutting down: Master
[2021-04-30 01:34:05 +0000] [1] [INFO] Reason: Worker failed to boot