我们正在DBT
使用 Docker 和docker-compose
. 在docker-compose.yml
我们的 Airflow 部署文件中,DBT 存储库作为卷附加:
webserver:
...
volumes:
- ../our-dbt-repo:/usr/local/airflow/dbt
运行dbt-run
通常会生成一个/logs
带有 DBT 日志的目录。但是,dbt-run
从 GCP 机器上的 docker 容器运行会抛出错误[Errno 13] Permission denied: 'logs'
。
为了测试权限,我docker exec -it <DockerContainerID> bash
从 GCP 机器的命令行运行(当 docker 容器正在运行时)进入正在运行的 docker 容器,然后运行cd /usr/local/airflow/dbt/ && touch file.txt
,并收到错误:touch: cannot touch 'file.txt': Permission denied
. 所以很明显,不能将任何文件添加到/dbt
作为卷添加到 Docker 容器中的文件夹中,这就是无法写入日志的原因。
有没有办法让我们的/dbt
卷权限写入日志?也许我们可以在其他地方(不是在 GCP 服务器上的容器中)写入 DBT 日志,这样就不需要在/dbt
容器上的卷中写入?