将一个 Python docker 容器用于库,另一个用于应用程序

问题描述 投票:0回答:1

假设我有一个使用 Docker 的 Python 容器,名为 libraries_container,其中安装了一些库,例如 Numpy。 另一方面,我有另一个容器,也是 Python,名为 app_container,它在 Flask 中有一个应用程序,但其中未安装 Numpy。 有没有办法从 Flask 应用程序中的libraries_container 导入Numpy?

例如,假设我在 Flask 应用程序中打印了 10 个由 numpy.random.randint 生成的随机数,如下所示

from flask import Flask
import numpy as np

app = Flask(__name__)

@app.route('/test', methods=['POST'])
def generate_random_numbers():
    random_numbers = np.random.randint(1, 101, 10)
    return ', '.join(map(str, random_numbers))

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

预计会出现 module not find (numpy) 的错误,而我想要的是能够从其他容器导入它(这只是一个参考示例)。

另一方面,出于我正在从事的项目的原因,我的想法是使用 docker-compose。

非常感谢您的宝贵时间

python docker docker-compose
1个回答
0
投票

是的,使用 COPY 命令和

--from
协议。这是多阶段构建的常见模式。

例如,如果您想将 multi-py uvicorn 容器中的所有文件复制到您自己的容器中:

来自Python:3.12

COPY --from=ghcr.io/multi-py/python-uvicorn:py3.12-slim-LATEST /usr/local/lib/python3.12/site-packages/* /usr/local/lib/python3.12/site-packages/
© www.soinside.com 2019 - 2024. All rights reserved.