【问题标题】:Installing dependencies on Docker Containers - Airflow在 Docker 容器上安装依赖项 - Airflow
【发布时间】:2021-08-17 12:24:16
【问题描述】:

我正在使用 Docker 容器来运行一些 python 脚本。我需要在容器中安装pymssql。我已经运行了 CLI 并使用 pip install pymssql 来安装这个包。虽然,当我刷新气流网页时,它一直向我显示 pymssql 未安装的错误:

Broken DAG: [/opt/airflow/dags/utils/havanutils/__init__.py] Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/opt/airflow/dags/utils/havanutils/__init__.py", line 4, in <module>
    import pymssql
ModuleNotFoundError: No module named 'pymssql'

我正在像 image 这样的 Docker Desktop 中运行 CLI。

我运行的 CLI 是否正确?或者这个包应该通过另一个 CLI 安装?

【问题讨论】:

  • 尝试查看this answer 以获取有关如何自定义 Airflow 图像文档的示例和参考。

标签: docker docker-compose airflow


【解决方案1】:

您应该在 docker 构建期间进行 pymssql 安装。否则每次停止容器时都必须重新安装pymssql

您应该在Dockerfile 中添加以下行:

RUN pip install pymssql;如果只有一个安装或

RUN pip install -r requirements.txt 并将您的安装添加到requirements.txt 文件中,例如 pymssql==2.2.2

【讨论】:

  • 我可以在我的docker-compose.yaml 文件中添加这些行吗?
  • @OdiumPura 不,这个文件是与 docker-compose.yml 不同的 Dockerfile。 Dockerfile 用于创建具有规范的 docker 容器。 Here is difference between both
【解决方案2】:

Docker 映像在运行时实际上是不可变的。

您应该创建您的镜像,将其推送到 Docker Registry,然后让您的 Airflow 任务使用它

【讨论】:

  • 感谢您的回答!你能给我一个链接或教程吗?
猜你喜欢
  • 2019-02-14
  • 1970-01-01
  • 2021-08-14
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 2016-03-16
  • 1970-01-01
相关资源
最近更新 更多