Hope this is a reasonable starting point for this question since the problem is straightforward and only shows up when I dockerize. Suggestions for other forums welcomed.
I am having trouble with the python env when I run the Dockerfile in lwsamaha/docker-dervisher (shown below). When I install the pip package I published at lwsamaha/dervisher in a fresh virtualenv, I am able to exercise the entrypoint declared in setup.py dervisher (tied to the main function in whirling.py).
From docker, I can run the main function directly, using the same python as the entrypoint. I can also enter that same python and verify package dependencies from the interactive shell.
But, when I exercise the package endpoint in the docker container at lwsamaha/docker-dervisher, my python environment cannot find basic package dependencies.
docker run -i -t lwsamaha/docker-dervisher dervisher --version File "/usr/local/bin/dervisher", line 5, in <module> from pkg_resources import load_entry_point <...> pkg_resources.DistributionNotFound: unittest2==0.8.0
My Dockerfile at lwsamaha/docker-dervisher:
FROM debian:wheezy MAINTAINER lwsamaha RUN DEBIAN_FRONTEND=noninteractive \ apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install -y \ python-pip RUN pip install -U pip RUN pip install boto RUN DEBIAN_FRONTEND=noninteractive \ apt-get clean autoclean && \ apt-get autoremove RUN pip install dervisher # ENTRYPOINT ["dervisher"] #
Pip entrypoint into python:
cat $(which dervisher) #!/usr/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'dervisher==0.0.9','console_scripts','dervisher' __requires__ = 'dervisher==0.0.9' import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.exit( load_entry_point('dervisher==0.0.9', 'console_scripts', 'dervisher')() )
Example of working python invocation within the docker container:
/usr/bin/python /usr/local/lib/python2.7/dist-packages/dervisher/whirling.py 3 3 > a dervisher starts whirling at 3 rpm
The python package installs and runs but the docker container does something different with the python environment loaded via the entry point.
Any advice would be greatly appreciated!