【发布时间】:2021-02-19 23:50:26
【问题描述】:
我正在运行一个 python 应用程序,它从 Windows 环境变量中读取两个路径,然后继续使用这些路径中的可执行文件对某些文档进行 OCR。由于 POPPLER、TESSERACT 环境变量已经在 Windows 中设置,这个 Python sn-p 对我有用:
popplerPath = os.environ.get('POPPLER')
tesseractPath = os.environ.get('TESSERACT')
现在我正在尝试对应用程序进行 docker 化,据我了解,由于我的容器需要访问这些路径,因此我需要在运行期间使用 VOLUME 安装它们。我的 dockerfile 看起来像这样:
FROM python:3.7.7-slim
WORKDIR ./
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY documents/ .
COPY src/ ./src
CMD [ "python", "./src/run.py" ]
我使用以下方法构建图像:
docker build -t ocr .
我尝试使用以下方法运行我的容器:
docker run -v %POPPLER%:%POPPLER% -v %TESSERACT%:%TESSERACT% ocr
...但我的应用程序仍然为这些路径获取 None 值,并且无法使用可执行文件。我的方法是否正确,除此之外,这是一种好的开发实践吗?
【问题讨论】:
-
我相信 %POPPLER% 检索了一个名为 POPPLER 的 Windows 环境变量,我正在尝试安装它(至少通过 cmd 它确实如此)。我的目标是挂载用户已经设置的路径
标签: python docker environment-variables