Sha*_*ker 3 docker docker-compose airflow airflow-scheduler
我正在使用 docker 运行气流,并且我想使用 cli 来执行暂停和取消暂停dag,因为我无法在远程Digital Ocean Droplet 服务器上安装浏览器来访问气流 UI。
目前我正在尝试使用命令访问气流 cli,sudo docker exec -it $(docker-compose -f docker-compose.yaml ps -q webserver) bash
但出现错误
docker.errors.DockerException: 获取服务器 API 版本时出错: ('连接中止。', PermissionError(13, '权限被拒绝')) [95826] 无法执行脚本 docker-compose “docker exec” 需要至少 2 个参数。
下面是我的docker-compose.yaml文件
version: '3'
x-airflow-common:
&airflow-common
image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.0.1}
environment:
&airflow-common-env
AIRFLOW__CORE__EXECUTOR: LocalExecutor
AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CORE__FERNET_KEY: ''
AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'true'
AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
volumes:
- ./dags:/opt/airflow/dags
- ./logs:/opt/airflow/logs
- ./plugins:/opt/airflow/plugins
user: "${AIRFLOW_UID:-50000}:${AIRFLOW_GID:-50000}"
depends_on:
postgres:
condition: service_healthy
services:
postgres:
image: postgres:13
environment:
POSTGRES_USER: airflow
POSTGRES_PASSWORD: airflow
POSTGRES_DB: airflow
volumes:
- postgres-db-volume:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "airflow"]
interval: 5s
retries: 5
restart: always
airflow-webserver:
<<: *airflow-common
command: webserver
ports:
- 8081:8080
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
interval: 10s
timeout: 10s
retries: 5
restart: always
airflow-scheduler:
<<: *airflow-common
command: scheduler
restart: always
airflow-init:
<<: *airflow-common
command: version
environment:
<<: *airflow-common-env
_AIRFLOW_DB_UPGRADE: 'true'
_AIRFLOW_WWW_USER_CREATE: 'true'
_AIRFLOW_WWW_USER_USERNAME: ${_AIRFLOW_WWW_USER_USERNAME:-airflow}
_AIRFLOW_WWW_USER_PASSWORD: ${_AIRFLOW_WWW_USER_PASSWORD:-airflow}
volumes:
postgres-db-volume:
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
如果你查看我们最近的quick-startdocker compose,你会发现你可以添加一个单独的 `airflow-cli' docker compose(它将在明天/后天与 2.1.4 一起发布,但你可以在这里看到它:
airflow-cli:
<<: *airflow-common
profiles:
- debug
environment:
<<: *airflow-common-env
CONNECTION_CHECK_MAX_COUNT: "0"
# Workaround for entrypoint issue. See: https://github.com/apache/airflow/issues/16252
command:
- bash
- -c
- airflow
Run Code Online (Sandbox Code Playgroud)
如果您已将其添加到 docker-compose 中,则可以运行docker-compose run airflow-cli <command>(和其他命令)
配置文件debug确保airflow-cli默认情况下不会启动该服务,只有在您指定--profile debug或明确指定要运行的服务时才启动该服务。
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |