映像檔建置引數參考¶
以下建置引數(docker 建置命令中的 --build-arg
)可用於生產映像檔。這些引數用於您想要自訂映像檔時。您可以在從 PyPI 套件建置中看到一些範例。
基本引數¶
這些是您想要建置自訂映像檔時最常用的引數。
建置引數 |
預設值 |
描述 |
---|---|---|
|
|
基礎 python 映像檔。 |
|
|
Airflow 版本。 |
|
(請參閱下表) |
安裝 airflow 時使用的預設 extras。 |
|
安裝 airflow 時使用的選用額外 extras。 |
|
|
|
Airflow 的 HOME (這是儲存日誌和 SQLite 資料庫的位置)。 |
|
|
Airflow 使用者的 Home 目錄。 |
|
|
使用的 PIP 版本。 |
|
|
使用的 UV 版本。 |
|
|
是否使用 UV 建置映像檔。這是一項實驗性功能。 |
|
|
UV pull request 的逾時時間 (秒)。 |
|
傳遞至安裝命令的其他 |
|
|
|
PIP 安裝的進度列 |
|
|
Airflow 使用者 UID。 |
|
|
建置映像檔的 constraints 類型。這可以是常規映像檔的 |
|
從 GitHub 取得 constraints 檔案的參考 (分支或標籤)。對於 2.0.* 安裝,可以是 |
注意
在 Airflow 2.2 之前,映像檔也有 AIRFLOW_GID
參數,但它沒有提供任何額外功能 - 只是增加了混淆 - 因此已移除。
生產 Dockerfile 中預設 extras 的清單
aiobotocore
amazon
async
celery
cncf-kubernetes
common-io
docker
elasticsearch
fab
ftp
google
google-auth
graphviz
grpc
hashicorp
http
ldap
microsoft-azure
mysql
odbc
openlineage
pandas
postgres
redis
sendgrid
sftp
slack
snowflake
ssh
statsd
uv
virtualenv
映像檔最佳化選項¶
建置 Airflow 映像檔的自訂方法的主要優點是,它可以建置高度最佳化的映像檔,因為最終映像檔 (RUNTIME) 可能不包含建置和安裝所有其他依賴項 (DEV) 所需的所有依賴項。這些引數允許控制 DEV 映像檔中安裝的內容以及 RUNTIME 映像檔中安裝的內容,從而產生更佳最佳化的映像檔。有關使用這些引數的範例,請參閱建置最佳化映像檔。
建置引數 |
預設值 |
描述 |
---|---|---|
|
如果設定為隨機的非空值,則依賴項會升級到較新版本。在 CI 中,它設定為建置 ID,以確保後續建置不會重複使用具有相同值的快取映像檔。 |
|
|
選用的 python 套件,用於使用一些額外依賴項擴充映像檔。 |
|
|
在 Build 映像檔中安裝 dev 依賴項之前執行的 Dev apt 命令。 |
|
|
在 Build 映像檔中安裝 dev 依賴項之前執行的其他 Dev apt 命令。應以 |
|
|
空白 - 安裝預設依賴項 (請參閱 |
在 Build 映像檔中安裝的 Dev APT 依賴項。 |
|
在 Build 映像檔中安裝的其他 apt dev 依賴項。 |
|
|
安裝 dev 依賴項時定義的其他環境變數。 |
|
|
在 |
|
|
在 |
|
|
空白 - 安裝預設依賴項 (請參閱 |
在 Main 映像檔中安裝的 Runtime APT 依賴項。 |
|
在 Main 映像檔中安裝的其他 apt runtime 依賴項。 |
|
|
安裝 runtime 依賴項時定義的其他環境變數。 |
|
|
|
是否應安裝 MySQL 用戶端。如果未安裝用戶端,則 mysql extra 會從 extras 中移除。 |
|
|
MySQL 用戶端程式庫的類型。可以是 |
|
|
是否應安裝 MsSQL 用戶端 |
|
|
是否應安裝 Postgres 用戶端 |
使用不同方法安裝 Airflow¶
只有在您想要使用與預設方法 (從 PyPI 套件安裝) 不同的安裝方法來安裝 Airflow 時,這些參數才有用。
如果您有自己的 Airflow 分支,並且想要從這些來源在本機 (在本機或直接從 GitHub 來源) 建置映像檔,這通常才有用。這樣一來,您就不需要透過 PyPI 發布您的 Airflow 和 Providers - 它們可以直接從來源或 GitHub 儲存庫安裝。另一種安裝選項是從先前準備好的二進位 Python 套件建置 Airflow,如果您需要在需要高安全性等級的環境中建置 Airflow,這可能會很有用。
- 您可以在以下位置看到這些範例
建置引數 |
預設值 |
描述 |
---|---|---|
|
|
Apache Airflow 的安裝方法。 |
|
|
Airflow 的來源。當您從本機來源安裝 Airflow 時,請將其設定為 “.” |
|
|
Airflow 來源的目標。當您從本機來源安裝 Airflow 時,請設定為 “/opt/airflow”。 |
|
選用 - 可能用於限制 Airflow 版本安裝 - 例如自動建置的 |
|
|
如果非空,它將使用指定的 URL 或檔案覆寫 constraints 的來源。請注意,該檔案必須位於 Docker 內容中,因此最好將此類檔案放在 |
|
|
|
如果設定為資料夾 (例如 |
|
|
如果設定為 true,則 Airflow、providers 和所有依賴項都將從放置在 |
預先快取 PIP 依賴項¶
當從 PIP 建置映像檔時,依預設會使用 PIP 依賴項的預先快取。這是為了加速開發期間的增量建置。當使用預先快取的 PIP 依賴項且 pyproject.toml
變更時,PIP 依賴項已預先安裝,因此可以更快地重建映像檔。這純粹是最佳化建置映像檔所需的時間,如果您想要從 Docker 內容檔案安裝 Airflow,則應停用此功能。
建置引數 |
預設值 |
描述 |
---|---|---|
|
|
最初預先安裝 PIP 依賴項的分支。 |
|
|
預先安裝 PIP 依賴項的儲存庫。 |
|
|
允許從 Apache Airflow 的 GitHub 預先快取 airflow PIP 套件。這允許最佳化映像檔建置的迭代並加速 CI 建置。 |
|
|
允許透過傳遞新引數使快取失效。 |