3

I'm trying to run a simple Dockerfile that runs a python script and takes some environment variable as an argument (using argparser):

FROM python:2.7
COPY . /app
WORKDIR /app
RUN pip install argparse
ENV POOL "pool_argument"
CMD ["python", "script.py", "--pool", "${POOL}"]

and my python script 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))

after building and running, I'm getting:

Args: Namespace(pool='${POOL}')

I tried many variations of this, but none seemed to work.

sheldonzy
  • 5,505
  • 9
  • 48
  • 86

1 Answers1

6

You need to run with sh -c to evaluate the environment variables:

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