<p>在讨论中得到<a href="https://github.com/apache/airflow/discussions/15517" rel="noreferrer">the answer</a>。现在唯一的方法是安装额外的python包来构建自己的映像。我将尝试更详细地解释这个解决方案</p>
<p><strong>步骤1。</strong>将<code>Dockerfile</code>、<code>docker-compose.yaml</code>和<code>requirements.txt</code>文件放入项目目录</p>
<p><strong>步骤2。</strong>粘贴到以下文件代码:</p>
<pre><code>FROM apache/airflow:2.1.0
COPY requirements.txt .
RUN pip install -r requirements.txt
</code></pre>
<p><strong>步骤3。</strong>粘贴到<code>docker-compose.yaml</code>代码,您可以找到<a href="https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml" rel="noreferrer">in the official documentation</a>。将第<code>image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.1.0}</code>节替换为<code>build: .</code>:</p>
<pre><code> -
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
# ...
</code></pre>
<p>此时您的项目目录应如下所示:</p>
<pre><code>airflow-project
|docker-compose.yaml
|Dockerfile
|requirements.txt
</code></pre>
<p><strong>第4步。</strong>运行<code>docker-compose up</code>启动气流,<code>docker-compose</code>应该从<code>Dockerfile</code>自动构建图像。运行<code>docker-compose build</code>重建映像并更新依赖项</p>