首页 > 解决方案 > 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}')

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

标签: pythonpython-2.7dockerenvironment-variablesdockerfile

解决方案


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

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

推荐阅读