如何在 docker-compose 文件中为多个容器配置公共 Python 环境?

How to configure a common Python environment for several containers in a docker-compose file?

我目前正在编写一个 docker-compose 文件,其中包含多个容器,包括 Airflow 和 Jupyter。最后,我想使用 Airflow 来 运行 一个 Python 脚本和一个 Jupyter Notebook。但是,我为 Jupyter 容器安装的依赖项不适用于 Airflow 容器,因为它们有自己的 Python 环境。如何创建一个通用的 Python 环境,以便在 Jupyter 开发期间安装的依赖项也可用于 Airflow?

您可以将所有要求放在存储库的 requirements.txt 文件中,然后在构建映像时使用 Dockerfile 安装它们。示例命令(假设 requirements.txtDockerfile 在同一文件夹中):

COPY requirements.txt ${AIRFLOW_USER_HOME}/requirements.txt

RUN pip install -r ${AIRFLOW_USER_HOME}/requirements.txt

我从来没有 运行 使用 Airflow 的 Jupyter Notebook,但似乎 Papermill 可以解决问题。