Когда вы пишете foo в конце вашей команды docker run , вы перезаписываете всю команду. Поэтому вместо
python app.py
вы звоните
foo
Правильный способ вызова вашего скрипта с аргументами:
docker run myimage python app.py foo
В качестве альтернативы вы можете использовать ENTRYPOINT вместо CMD и тогда ваша docker команда run может содержать только foo после имени изображения
Dockerfile:
FROM python:3
# set a directory for the app
WORKDIR /usr/src/app
# copy all the files to the container
COPY app.py .
# run the command
ENTRYPOINT ["python", "./app.py"]
, вызывая его:
docker run myimage foo