我试图参与码头魔术并且有一个问题: 我想运行容器,其中安装了所有python软件包,然后运行了这个" source"容器运行我的python脚本,使用安装在第一个docker容器包上的脚本? 我有一个dockerfile,我在其中安装了python3和pip,在docker-compose.yml文件中我正在构建第一个容器中的所有需求
如何更新docker-compose.yml文件以使第二个容器能够使用在另一个容器包上安装的所有容器?
答案 0 :(得分:2)
使用pip freeze
获取所有已安装的pip包及其特定版本的列表。标准做法是为pip安装保留文本文件requirements.txt
。
$ pip freeze > requirements.txt
$ pip install -r requirements.txt
将此行添加到您的泊坞文件中:
ONBUILD RUN pip install -r /app/requirements.txt
答案 1 :(得分:0)
另一个选择是使用virtualenv和泊坞窗卷。
在一张图片中构建一个virtualenv并使其成为一个卷:
RUN virtualenv /venv
RUN /venv/bin/pip install ...
VOLUME /venv
对于第二个容器使用volumes_from: ['the-first-container']
如果您想将默认的python site-packages路径设为VOLUME
,则可能不需要virtualenv。