为斯坦福NLP的NLTK设置docker的JAVA_HOME

我是使用Docker的初学者。 我正在使用Docker工具箱的Windows 7,我build立了我的Python Web应用程序的图像,一切工作正常。

但是,对于这个应用程序,我使用nltk模块,也需要java和java_home设置到java文件。 在我的电脑上运行时,我可以mannualy设置java_home,但是如何在dockerfile中这样做,以便在另一台机器上运行时不会出错。 这是我的错误:

我的错误

ps:下面的答案

当你运行一个容器时,你可以select使用-e标志来传递你的容器中设置的环境variables。 这个答案很好地解释了环境variables: 我如何将环境variables传递给Docker容器?

docker container run -e JAVA_HOME='/path/to/java' <your image>

确保你的图片实际上也包含了Java。 您可能需要查看openjdk:8 hub上的openjdk:8映像。

这听起来像你需要一个docker文件来build立你的形象。 看看这里logging的ENV命令来设置JAVA_HOME var: https : docker build /path/to/Dockerfile然后用docker build /path/to/Dockerfile构build你的镜像

我看到你已经尝试过了,并没有太多的运气。运行容器,而不是运行你的应用程序进程,只需沿着echo $JAVA_HOME行运行一个bash脚本,这样至less可以validation这个部分是否工作。

另外,请确保您在Docker文件中的映像内的相应目录中复制所需的任何文件/二进制文件,如下所述。

我终于find了为dockerfile安装java的方法,它是使用ubuntu镜像的java安装命令行。 以下是docker文件。 感谢您的阅读。

 RUN apt-get update RUN apt-get install -y python-software-properties RUN apt-get install -y software-properties-common RUN add-apt-repository -y ppa:openjdk-r/ppa RUN apt-get update RUN apt-get install -y openjdk-8-jdk ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/ RUN export JAVA_HOME 
Interesting Posts