Python 在斯坦福NLP的NLTK中为docker设置JAVA_主页
我是使用Docker的初学者。 我正在使用Docker toolbox for Windows 7,我为我的python web应用程序构建了一个图像,一切正常 然而,对于这个应用程序,我使用nltk模块,它还需要java和java_主页设置到java文件。 在我的计算机上运行时,我可以手动将java_设置为home,但如何在dockerfile中进行设置,以便在另一台计算机上运行时不会出错。 这是我的错误: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标志传入将在容器中设置的环境
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映像的要求和理想情况: