Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在斯坦福NLP的NLTK中为docker设置JAVA_主页_Python_Docker_Nltk_Stanford Nlp_Java Home - Fatal编程技术网

Python 在斯坦福NLP的NLTK中为docker设置JAVA_主页

Python 在斯坦福NLP的NLTK中为docker设置JAVA_主页,python,docker,nltk,stanford-nlp,java-home,Python,Docker,Nltk,Stanford Nlp,Java Home,我是使用Docker的初学者。 我正在使用Docker toolbox for Windows 7,我为我的python web应用程序构建了一个图像,一切正常 然而,对于这个应用程序,我使用nltk模块,它还需要java和java_主页设置到java文件。 在我的计算机上运行时,我可以手动将java_设置为home,但如何在dockerfile中进行设置,以便在另一台计算机上运行时不会出错。 这是我的错误: p、 s:回答如下当您运行一个容器时,您可以选择使用-e标志传入将在容器中设置的环境

我是使用Docker的初学者。 我正在使用Docker toolbox for Windows 7,我为我的python web应用程序构建了一个图像,一切正常

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


p、 s:回答如下

当您运行一个容器时,您可以选择使用
-e
标志传入将在容器中设置的环境变量。这个答案很好地解释了环境变量:

docker容器运行-e JAVA_HOME='/path/to/JAVA'

确保您的图像实际上也包含Java。您可能想看看docker hub上的
openjdk:8
图像

听起来你需要一个docker文件来构建你的形象。请查看此处记录的
ENV
命令,以设置
JAVA_HOME
var:并使用
docker build/path/to/Dockerfile

我看你已经试过了,运气不太好。。运行容器,而不是运行应用程序进程,只需按照
echo$JAVA_HOME
运行bash脚本,这样您至少可以验证该部分是否正常工作


另外,请确保将所需的任何文件/二进制文件复制到docker文件中映像内的适当目录,如下所述。

当您运行容器时,您可以选择使用
-e
标志传入将在容器中设置的环境变量。这个答案很好地解释了环境变量:

docker容器运行-e JAVA_HOME='/path/to/JAVA'

确保您的图像实际上也包含Java。您可能想看看docker hub上的
openjdk:8
图像

听起来你需要一个docker文件来构建你的形象。请查看此处记录的
ENV
命令,以设置
JAVA_HOME
var:并使用
docker build/path/to/Dockerfile

我看你已经试过了,运气不太好。。运行容器,而不是运行应用程序进程,只需按照
echo$JAVA_HOME
运行bash脚本,这样您至少可以验证该部分是否正常工作


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

我终于找到了安装java for dockerfile的方法,它是使用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

我终于找到了安装java for dockerfile的方法,它是使用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

他甚至可以在Docker构建中包含一个“引导”脚本,调用他的python应用程序并设置环境变量。问题是我想我没有运行容器。我只是将其推送到dockerhub,然后使用另一个应用程序将docker映像拉回来,并将其部署到公司服务器上。因此,我只能在构建图像之前对其进行修改,因此我正在寻找一种方法,允许我自动设置java_主页images@NickBrady即使在没有将实际二进制文件和斯坦福nlp目录装载到docker上的情况下使用该变量,代码也无法访问任何这些资源“引导“Docker构建中调用python应用程序并设置环境变量的脚本。问题是我认为我没有运行容器。我只是将其推送到dockerhub,然后使用另一个应用程序将docker映像拉回来,并将其部署到公司服务器上。因此,我只能在构建图像之前对其进行修改,因此我正在寻找一种方法,允许我自动设置java_主页images@NickBrady即使在没有将实际二进制文件和斯坦福nlp目录装载到docker上的情况下使用变量,代码将无法访问任何这些资源。快速问题:您真的需要docker来执行NLTK吗?我想是的,因为我需要在我的公司服务器上部署应用程序,该应用程序将使用从DockerHubintersting提取图像的方法。。。如果您愿意,请解释NLTK在此问题上托管自包含docker映像的要求和理想情况:快速问题:您真的需要docker来执行NLTK吗?我想是的,因为我需要在我的公司服务器上部署应用程序,该服务器将使用从DockerHubintersting中提取映像的方法。。。如果您愿意,请解释NLTK在此问题上托管独立docker映像的要求和理想情况: