如何跟踪一个docker集装箱上的pip安装包,以便在另一个docker集装箱中使用它们
我试图参与docker魔术,并有一个问题:我想运行容器,其中安装所有的python包,并在这个“源”容器后运行我的Python脚本,使用安装在第一个docker集装箱包? 我有一个dockerfile,我已经安装了python3和点子,并在dockercompose.yml文件我build立所有的要求在第一个容器
如何更新docker-compose.yml文件使第二个容器能够使用所有安装在另一个容器包上?
另一种select是使用virtualenv和docker卷。
在一个图像中build立一个virtualenv并使其成为一个卷:
RUN virtualenv /venv RUN /venv/bin/pip install ... VOLUME /venv
对于第二个容器使用volumes_from: ['the-first-container']
如果你想让默认的python site-packagespath成为VOLUME
你可能不需要virtualenv。
使用pip freeze
来获得所有安装的pip包及其特定版本的列表。 标准做法是为pip安装保留一个文本文件requirements.txt
。
$ pip freeze > requirements.txt $ pip install -r requirements.txt
把这一行添加到你的docker文件中:
ONBUILD RUN pip install -r /app/requirements.txt