我是docker的新手,我的程序读取存储在resources文件夹中的文本文件。 这是我的文件
FROM python:3.9
WORKDIR /event_listener
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY ./src ./src
COPY resources event_listener/recources
CMD ["python","./src/main.py"]
这就是为构造函数提供文件路径的地方
class Contract:
# initializing contract object
def __init__(self, *args):
self.chainList = ChainList('resources/chain_objects.txt').chains
我使用docker build --no-cache -t event_listener .
创建docker容器
当我运行它时,我得到以下错误FileNotFoundError: [Errno 2] No such file or directory: 'resources/chain_objects.txt'
我的代码构建如下
|
|_src (source code)
|_resources(txt files)
|_chain_objects.txt
看到你抓到了,但要小心这样的打字错误(资源!=资源)
我建议复制文件时使用完整路径,以尽量减少错误。 转向:
为此:
在应用程序内部,使用完整路径而不是相对路径。 由此:
为此:
您在Dockerfile中设置的工作目录不适用于在基于它的容器中运行的应用程序。如果您的框架允许您将某种类型的
workdir
设置为其默认搜索位置,那么您可以通过这种方式实现,但为了避免此类错误,始终使用相对于工作环境的完整路径(如果您在项目上下文中提到像requirements.txt
这样的文件,请使用相对路径)第二点,帮助其他开发人员使用这个神奇的字符串,使它成为常量、环境变量或属性,您可以从添加的文件导入到项目中
环境变量:
属性文件:
ConfigFile.properties
守则:
相关问题 更多 >
编程相关推荐