How to check whether python package is installed or not in Docker?
Asked Answered
C

1

25

I used Dockerfile successfully built a container. However, my code doesn't work in the container. It does work if I install all the packages manually. I'm assuming I messed up something that cause docker didn't install the packages properly. So, I want to check whether python package is installed or not in Docker container. What is the best way to check it?

The Dockerfile I used:

# Update the sources list
RUN sudo apt-get update

# Install basic applications
RUN sudo apt-get install -y tar git curl nano wget dialog net-tools build-essential

# First install ZeroMQ
RUN sudo apt-get install -y libzmq-dev

# Install libevent
RUN sudo apt-get install -y libevent-dev

# Install Python and Basic Python Tools
RUN sudo apt-get install -y python python-dev python-setuptools
RUN sudo apt-get install -y python-pip 

# Add the current directory to the container
ADD . /root/code

# Get pip to download and install requirements:
RUN sudo pip install -r /root/code/requirements.txt

# Expose ports
EXPOSE 80 4242

# Define working directory.
WORKDIR /root/code

# Start the tcp server.
CMD python app.py

The requirements.txt I used:

gevent==1.0.1
greenlet==0.4.5
msgpack-python==0.4.2
pyzmq==13.1.0
wsgiref==0.1.2
zerorpc==0.4.4
Circumgyration answered 17/12, 2014 at 7:50 Comment(1)
You could attach to the container and check your site-packagesPneumatophore
C
62

I figured out.

docker exec <container ID> pip list
Circumgyration answered 17/12, 2014 at 9:58 Comment(5)
are you sure all the modules inside requirements.txt are get installed/accessible in docker container?Stimulus
This command has nothing to do with requirements.txt. docker exec <container ID> pip list is basically run pip list inside of the container to get all packages installed for the default python of the container. So, to make sure you have packages in your requirements.txt installed, you may try docker exec <container ID> cd <your python project folder, where you store requirements.txt> && pip install -r requirements.txtCircumgyration
for me this one worked: docker run <container ID> pip list.Acciaccatura
The question is how can you list all packages inside docker image without running containerHirsch
For me to update the version to pymongo 4.0, so I switched to version 3.12.1 and it worked. Thank you very much.Coat

© 2022 - 2024 — McMap. All rights reserved.