Mak*_*nii 2 python docker airflow
这个问题与已有的问题非常相似。唯一的区别是我在 docker 中运行 Airflow
一步步:
requirements.txtPyCharm 项目docker-compose upModuleNotFoundError我想使用 docker-compose和requirements.txt. PyCharm 解释器和 DAG 执行期间应该可以使用这些依赖项
有没有不需要重建图像的解决方案?
Wxl*_*xll 18
有没有不需要重建镜像的解决方案?
是的,现在有:目前(2021 年 10 月 v2.2.0)它可以作为环境变量使用:
_PIP_ADDITIONAL_REQUIREMENTS
Run Code Online (Sandbox Code Playgroud)
它在 docker-compose.yml 文件中使用。正如其他一些答案所解释的那样,这应该可以在不构建完整图像的情况下达到目的(实际上很好:-)
请参阅:https ://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml
在气流 GitHub 讨论中得到了答案。现在唯一的方法是安装额外的 python 包来构建你自己的镜像。我将尝试更详细地解释这个解决方案
步骤 1.将Dockerfile,docker-compose.yaml和requirements.txt文件放入项目目录
步骤 2.粘贴到下面的 Dockefile 代码:
FROM apache/airflow:2.1.0
COPY requirements.txt .
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
步骤3.粘贴到docker-compose.yaml代码中,可以在官方文档中找到。将部分替换image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.1.0}为build: .:
---
version: '3'
x-airflow-common:
&airflow-common
build: .
# REPLACED # image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.1.0}
environment:
&airflow-common-env
AIRFLOW__CORE__EXECUTOR: CeleryExecutor
AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://airflow:airflow@postgres/airflow
AIRFLOW__CELERY__BROKER_URL: redis://:@redis:6379/0
AIRFLOW__CORE__FERNET_KEY: ''
AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'true'
AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
AIRFLOW__API__AUTH_BACKEND: 'airflow.api.auth.backend.basic_auth'
volumes:
- ./dags:/opt/airflow/dags
- ./logs:/opt/airflow/logs
- ./plugins:/opt/airflow/plugins
user: "${AIRFLOW_UID:-50000}:${AIRFLOW_GID:-50000}"
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
# ...
Run Code Online (Sandbox Code Playgroud)
此时您的项目目录应如下所示:
airflow-project
|docker-compose.yaml
|Dockerfile
|requirements.txt
Run Code Online (Sandbox Code Playgroud)
步骤 4.运行docker-compose up以启动 Airflow,docker-compose应该会自动从Dockerfile. 运行docker-compose build以重建映像并更新依赖项
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |