2020年12月19日星期六

Docker container producing different results for same command

A colleague and I have a big Docker puzzle.

When we run the following commands we get different results.

docker run -it python:3.8.6 /bin/bash  pip install fbprophet  

For me, it installs perfectly, while for him it produces an error and fails to install. I thought the whole point of docker is to prevent this kind of issue, so I'm really puzzled.

I'm giving more details below, but my main question is:

  • How is it possible that we get different results?

More details:

We both are running Docker in a new MacBook Pro with similar specs, on Catalina. His Docker engine version 20.x.x is slightly newer than mine 19.X.X. Also:

  • He tried all the commands he could think of to clean up things in Docker.
  • We verified that the hashes of the image IDs were the same.
  • Our resource settings were also the same.
  • He tried reinstalling Docker and changing to other versions of python (3.7).
  • We tried simultaneously on multiple occasions during the last three days.

The result was always the same: He gets the error and I don't.

The error he gets is the following.

Error:  Installing collected packages: six, pytz, python-dateutil, pymeeus, numpy, pyparsing, pillow, pandas, korean-lunar-calendar, kiwisolver, ephem, Cython, cycler, convertdate, tqdm, setuptools-git, pystan, matplotlib, LunarCalendar, holidays, cmdstanpy, fbprophet      Running setup.py install for fbprophet ... error      ERROR: Command errored out with exit status 1:       command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l516b8ts/fbprophet_80d5f400081541a2bf6ee26d2785e363/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l516b8ts/fbprophet_80d5f400081541a2bf6ee26d2785e363/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7n8tvfkb/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.8/fbprophet           cwd: /tmp/pip-install-l516b8ts/fbprophet_80d5f400081541a2bf6ee26d2785e363/      Complete output (10 lines):      running install      running build      running build_py      creating build      creating build/lib      creating build/lib/fbprophet      creating build/lib/fbprophet/stan_model      Importing plotly failed. Interactive plots will not work.      INFO:pystan:COMPILING THE C++ CODE FOR MODEL anon_model_dfdaf2b8ece8a02eb11f050ec701c0ec NOW.      error: command 'gcc' failed with exit status 1      ----------------------------------------  ERROR: Command errored out with exit status 1: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l516b8ts/fbprophet_80d5f400081541a2bf6ee26d2785e363/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l516b8ts/fbprophet_80d5f400081541a2bf6ee26d2785e363/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7n8tvfkb/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.8/fbprophet Check the logs for full command output.  

Optional additional questions:

  • How do we fix it?
  • How do we prevent non-reproducible results like this one?
  • Can upgrading the docker engine version break a container?
https://stackoverflow.com/questions/65366434/docker-container-producing-different-results-for-same-command December 19, 2020 at 11:36AM

没有评论:

发表评论