映象構建引數參考¶
以下構建引數(docker build 命令中的 --build-arg)可用於生產映象。這些引數用於自定義映象。您可以在從 PyPI 包構建中看到一些示例。
基本引數¶
這些是構建自定義映象時最常用的引數。
構建引數 |
預設值 |
描述 |
|---|---|---|
|
|
基礎 Python 映象。 |
|
|
Airflow 的版本。 |
|
(見表格下方) |
安裝 Airflow 時使用的預設 extras。 |
|
安裝 Airflow 時可選的額外 extras。 |
|
|
|
Airflow 的 HOME 目錄(日誌和 SQLite 資料庫儲存在此處)。 |
|
|
Airflow 使用者的 HOME 目錄。 |
|
|
使用的 PIP 版本。 |
|
|
使用的 UV 版本。 |
|
|
是否使用 UV 構建映象。這是一個實驗性功能。 |
|
|
UV 拉取請求的超時時間(秒)。 |
|
傳遞給安裝命令的額外 |
|
|
|
PIP 安裝的進度條 |
|
|
Airflow 使用者 UID。 |
|
|
構建映象時使用的約束型別。可以是 regular 映象的 |
|
從 GitHub 獲取約束檔案的引用(分支或標籤)。對於 2.0.* 安裝,可以是 |
注意
在 Airflow 2.2 之前,映象也有 AIRFLOW_GID 引數,但它沒有提供任何額外功能,只會增加混淆,因此已被移除。
生產 Dockerfile 中的預設 extras 列表
aiobotocore
amazon
async
celery
cncf-kubernetes
common-io
common-messaging
docker
elasticsearch
fab
ftp
git
google
google-auth
graphviz
grpc
hashicorp
http
ldap
microsoft-azure
mysql
odbc
openlineage
pandas
postgres
redis
sendgrid
sftp
slack
snowflake
ssh
statsd
uv
映象最佳化選項¶
構建 Airflow 映象的定製方法的主要優點在於,它可以構建高度最佳化的映象,因為最終映象(RUNTIME)可能不包含構建和安裝所有其他依賴項(DEV)所需的全部依賴項。這些引數允許控制在 DEV 映象和 RUNTIME 映象中安裝的內容,從而生成更最佳化的映象。請參閱構建最佳化的映象瞭解使用這些引數的示例。
構建引數 |
預設值 |
描述 |
|---|---|---|
|
如果設定為一個隨機的非空值,依賴項將被升級到新版本。在 CI 中,它被設定為構建 ID,以確保後續構建不會重用具有相同值的快取映象。 |
|
|
可選的 Python 包,用於為映象擴充套件一些額外依賴項。 |
|
|
在構建映象中安裝 dev 依賴項之前執行的 Dev apt 命令。 |
|
|
在構建映象中安裝 dev 依賴項之前執行的額外 Dev apt 命令。應以 |
|
|
空 - 安裝預設依賴項(參見 |
在構建映象中安裝的 Dev APT 依賴項。 |
|
在構建映象中安裝的額外 apt dev 依賴項。 |
|
|
安裝 dev 依賴項時定義的額外環境變數。 |
|
|
在 |
|
|
在 |
|
|
空 - 安裝預設依賴項(參見 |
在 Main 映象中安裝的 Runtime APT 依賴項。 |
|
在 Main 映象中安裝的額外 apt runtime 依賴項。 |
|
|
安裝 runtime 依賴項時定義的額外環境變數。 |
|
|
|
是否應該安裝 MySQL 客戶端。如果未安裝客戶端,則從 extras 中移除 mysql extra。 |
|
|
MySQL 客戶端庫的型別。可以是 |
|
|
Whether MsSQL client should be installed |
|
|
Whether Postgres client should be installed |
使用不同方法安裝 Airflow¶
這些引數僅當您想使用不同於預設方法(從 PyPI 包安裝)來安裝 Airflow 時才有用。
這通常只在您有自己的 Airflow 分支並想從這些原始碼構建映象時有用——無論是在本地還是直接從 GitHub 原始碼構建。這樣,您無需透過 PyPI 釋出您的 Airflow 和 Providers,它們可以直接從原始碼或 GitHub 倉庫安裝。另一種安裝選項是從之前準備好的二進位制 Python 包構建 Airflow,這在需要在高安全性環境中構建 Airflow 時可能有用。
- 您可以在以下內容中看到一些示例:
構建引數 |
預設值 |
描述 |
|---|---|---|
|
|
Apache Airflow 的安裝方法。 |
|
|
Airflow 的源。當您從本地源安裝 Airflow 時,將其設定為 |
|
|
Airflow 源的目標路徑。當您從本地源安裝 Airflow 時,設定為 |
|
可選 - 可用於限制 Airflow 版本安裝,例如 |
|
|
如果不為空,它將使用指定的 URL 或檔案覆蓋約束檔案的源。請注意,檔案必須在 Docker 上下文中,因此最好將此類檔案放在 |
|
|
|
如果設定為一個資料夾(例如 |
|
|
如果設定為 true,Airflow、provider 和所有依賴項將從放置在 |
依賴快取¶
我們使用 --mount-type=cache 捲來加快 Airflow 映象依賴項的安裝。結合 uv 的速度和廣泛的快取使用,以及在 CI 環境中快速恢復快取,這使得我們能夠快速構建映象——無論是用於 CI 還是本地開發目的。可以透過提供 DEPENDENCY_CACHE_EPOCH 構建引數的新值或在 Dockerfile 中修改它來輕鬆使快取失效。
構建引數 |
預設值 |
描述 |
|---|---|---|
|
|
透過傳遞新引數允許使快取失效。 |