我是使用 Docker 的初学者。
我正在使用适用于 Windows 7 的 Docker 工具箱,我为我的 python Web 应用程序构建了一个镜像,一切正常。
然而,对于这个应用程序,我使用 nltk 模块,它也需要 java 和 java_home 设置到 java 文件。
在我的计算机上运行时,我可以手动设置 java_home,但是如何在 dockerfile 中进行设置,以便在另一台计算机上运行时不会出错。
这是我的错误:
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/