【发布时间】:2021-02-02 16:48:28
【问题描述】:
我有一个运行 docker-compose 的 Makefile,它有一个执行 python 脚本的容器。我希望能够将命令行中的变量传递给 Makefile 并在 python 脚本 (testing.py) 中打印它。
我的目录如下:
main_folder:
-docker-compose.yaml
-Makefile
-testing.py
我尝试了以下配置。 Makefile 是:
.PHONY: run run-prod stop stop-prod rm
run:
WORKING_DAG=$(working_dag) docker-compose -f docker-compose.yml up -d --remove-orphans --build --force-recreate
docker-compose 是:
version: "3.7"
services:
prepare_files:
image: apache/airflow:1.10.14
environment:
WORKING_DAG: ${working_dag}
PYTHONUNBUFFERED: 1
entrypoint: /bin/bash
command: -c "python3 testing.py $$WORKING_DAG"
而文件 testing.py 是:
import sys
print(sys.argv[0], flush=True)
当我在命令行中运行时:
make working_dag=testing run
它不会失败,但它也不会打印任何东西。我怎么能做到?谢谢
【问题讨论】:
标签: python docker variables makefile docker-compose