【问题标题】:docker run python script in CMD with environment variables [duplicate]docker在CMD中使用环境变量运行python脚本[重复]
【发布时间】:2020-07-04 19:49:30
【问题描述】:

我正在尝试运行一个简单的 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}')

我尝试了很多变体,但似乎都没有。

【问题讨论】:

  • 旁注:python2.7 已弃用,我建议您过渡到 python3

标签: python python-2.7 docker environment-variables dockerfile


【解决方案1】:

您需要使用sh -c 运行以评估环境变量:

CMD ["sh", "-c", "python script.py --pool ${POOL}"]

【讨论】: