python - 为斯坦福 NLP 的 NLTK 中的 docker 设置 JAVA_HOME

标签 python docker nltk stanford-nlp java-home

我是使用 Docker 的初学者。
我正在使用适用于 Windows 7 的 Docker 工具箱,我为我的 python Web 应用程序构建了一个镜像,一切正常。

然而,对于这个应用程序,我使用 nltk 模块,它也需要 java 和 java_home 设置到 java 文件。
在我的计算机上运行时,我可以手动设置 java_home,但是如何在 dockerfile 中进行设置,以便在另一台计算机上运行时不会出错。
这是我的错误:

My Error

ps:下面回答

最佳答案

当您运行容器时,您可以选择传入环境变量,这些环境变量将使用 -e 设置在您的容器中。旗帜。这个答案很好地解释了环境变量:How do I pass environment variables to Docker containers?
docker container run -e JAVA_HOME='/path/to/java' <your image>
确保您的图像实际上也包含 Java。您可能想查看 openjdk:8 之类的内容。 docker hub 上的图片。

听起来您需要一个 docker 文件来构建您的图像。看看ENV此处记录的命令用于设置 JAVA_HOME变量:https://docs.docker.com/engine/reference/builder/#env然后使用 docker build /path/to/Dockerfile 构建您的图像

我看到您已经尝试过了,但运气不佳.. 运行容器,而不是运行您的应用程序进程,只需按照 echo $JAVA_HOME 的行运行 bash 脚本所以您至少可以验证该部分是否正常工作。

还要确保将所需的任何文件/二进制文件复制到 docker 文件中图像中的相应目录,如下所述。

关于python - 为斯坦福 NLP 的 NLTK 中的 docker 设置 JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187925/

相关文章:

python - Docker:使用容器名称从一个容器连接到另一个容器时,如何修复 "could not translate host name "postgres“到地址”?

python - NLTK - 使用上下文区分颜色和单词

python - 如何使用 GroupBy.agg() 从 TimeSeries 数据中获取 'Start' 和 'End'?

python - 为什么 MOD_SHIFT 事件键在 PYGAME Mac 中不起作用

docker - Jenkins Docker插件无法连接到Docker服务器主机URL

python - 如何在Python中使用NLTK有效地查找字母列表的出现次数?

python - 如何获取是/否问题的某些动词的否定词列表?

python - nltk "OMW"带有阿拉伯语的 wordnet

python - Python read()在readlines()工作时引发MemoryError

docker - 为不同架构拉取 docker 镜像