Docker for HOME目录的nltk?

我需要包含应该从$HOME/nltk_data读取的nltk

在本地机器上,我只是跑步

python -m nltk.downloader -d $HOME/nltk_data all

但我不知道如何得到这个在Dockerfile工作

RUN python -m nltk.downloader -d $HOME/nltk_data all

会工作?

如何在Docker容器中设置$HOME

我看到这些消息

 [nltk_data] | Downloading package abc to //nltk_data... [nltk_data] | Unzipping corpora/abc.zip. [nltk_data] | Downloading package alpino to //nltk_data... [nltk_data] | Unzipping corpora/alpino.zip. [nltk_data] | Downloading package biocreative_ppi to //nltk_data... [nltk_data] | Unzipping corpora/biocreative_ppi.zip. 

您需要创build自己的并设置$ HOME envvariables。 这里是如何:

 RUN mkdir /user ENV HOME /user WORKSPACE /user 

这是一个testing:

 docker run -i -t ubuntu bash echo $HOME root@7fe16f3e86bc:/# echo $HOME / 

根用户的主目录也被设置/所以你应该能够运行:

 RUN python -m nltk.downloader -d /nltk_data all 

另外,您也可以使用下面的USER命令来设置所有后续命令的默认用户。 这将意味着所有后续命令映射到/ home / bob的$ HOME

 RUN useradd --user-group --system --home-dir /home/bob bob USER bob RUN python -m nltk.downloader -d $HOME/nltk_data all