为斯坦福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