python - docker在CMD中使用环境变量运行python脚本
问题描述
我正在尝试运行一个简单的 Dockerfile,它运行一个 python 脚本并将一些环境变量作为参数(使用 argparser):
FROM python:2.7
COPY . /app
WORKDIR /app
RUN pip install argparse
ENV POOL "pool_argument"
CMD ["python", "script.py", "--pool", "${POOL}"]
和我的python脚本script.py
:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--pool', required=True)
known_args, unknown_args = parser.parse_known_args()
print("Args: {}".format(known_args))
构建并运行后,我得到:
Args: Namespace(pool='${POOL}')
我尝试了很多变体,但似乎都没有奏效。
解决方案
您需要运行sh -c
以评估环境变量:
CMD ["sh", "-c", "python script.py --pool ${POOL}"]
推荐阅读
- node.js - 如何使用 graphql-compose 创建重用解析器
- firebase-cloud-messaging - 如何使用 FCM 旧版 HTTP API 正确设置 collapse_key?
- python - 处理关闭对象内的串行端口的最佳方法
- django - 匹配的查询不存在。不存在于 /blog/postComment
- javascript - 在javascript中合并2个不同数据集的最佳方法?
- excel - 使用 VBA 在单元格中排列值
- python - pyinstaller,导入多个错误
- javascript - 如何创建只有购买 patreon 等级的人才能使用的命令?
- javascript - 解码一个 DRACO 编码的 obj 并加载纹理信息
- javascript - 自定义JS提示功能