【问题标题】:How to install packages to docker's python?如何将软件包安装到 docker 的 python?
【发布时间】:2017-02-25 22:55:16
【问题描述】:

如何将软件包安装到 docker 的 python 中?

例如,我需要lmxl。在 docker 的 django 应用程序中,我运行 pip install lxml 并且终端响应该要求已经满足(因为它安装在 OS X python 2.7 包中),但实际上它没有安装在 docker 的 python 包中。

那么,如何将pip install something 应用到docker?

【问题讨论】:

  • 您使用的是Dockerfile吗?
  • @flowfree 所以你的意思是把 RUN pip install 东西放到 Dockerfile 中?
  • 我想知道你是如何运行docker的,你是创建一个自定义的Dockerfile还是简单地运行现有的Python镜像
  • 那么是的,您可以在您的Dockerfile 中使用RUN pip install lxml 安装它
  • 我相信你应该这样做 docker-compose build 然后 docker-compose up

标签: python django docker


【解决方案1】:

正确的方法是更新你项目的 requirements.txt 文件。

# requirements.txt
# .. other requirements
lxml

在 (RUN apt-get update .....) 之后将 lxml 依赖项添加到您的 Dockerfile 中

RUN apt-get install -y python-dev libxml2-dev libxslt1-dev zlib1g-dev

现在构建并运行。使用任一

docker-compose build
docker-compose up

docker-compose up --build

【讨论】:

  • 既然RUN根据命令字符串决定是否创建新层,RUN python -m pip install --upgrade pip是创建新层还是重用现有层?
【解决方案2】:

您将使用 Docker 的 docker-compose run --rm --service-ports web bash 命令。这将带您进入容器的命令行。在那里,您可以运行pip install lxml。安装完成后,只需输入exit,即可退出使用web容器的容器并移除。

这里是Docker运行的文章供参考:https://docs.docker.com/compose/reference/run/

【讨论】:

    【解决方案3】:

    有很多方法可以在 docker 中安装软件包,但我更喜欢使用 docker 文件 https://rominirani.com/docker-tutorial-series-writing-a-dockerfile-ce5746617cd#.q00am7bh3

    https://www.digitalocean.com/community/tutorials/docker-explained-using-dockerfiles-to-automate-building-of-images

    查看这些链接可能会对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-06-02
      • 2018-03-06
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2013-07-06
      • 2018-06-25
      相关资源
      最近更新 更多