В контейнере docker не удается найти уже установленные пакеты pip - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь настроить изображение Docker с запуском python3 .6. Мой код полагается на некоторые пакеты, поэтому я создаю образ basi c с помощью pip install всех необходимых пакетов. Базовый c образ Dockerfile:

FROM centos:7

RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum install -y python3 python3-pip python36-devel python36-setuptools; yum clean all

COPY requirements.txt ./
# Install any needed packages specified in requirements.txt
RUN python3 -m pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

CMD ["bash"]

Я назвал этот базовый c образ как myrepo: 5000 / base-py. Я создаю тестовый образ ИЗ myrepo: 5000 / base-py. Dockerfile вроде этого:

FROM myrepo:5000/base-py

# pip install Django
RUN pip3 install Django==2.1.2  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

LABEL kemp.app="noded"
CMD ["bash"]

В этом новом тестовом контейнере я не могу найти некоторые пакеты, которые были установлены в базовом c образе!

Я использую wagoodman / dive: новейший инструмент для анализа этого тестового образа , он показывает пакеты, уже находящиеся в каталоге /usr/local/lib/python3.6/site-packages. Но когда я в контейнере, только Django в /usr/local/lib/python3.6/site-packages. анализ погружений

[root@vmhost ~]# docker run --rm test ls /usr/local/lib/python3.6/site-packages
django
Django-2.1.2.dist-info

[root@vmhost ~]# docker run --rm myrepo:5000/base-py ls /usr/local/lib/python3.6/site-packages
aiozmq
aiozmq-0.7.1.dist-info
async_timeout
async_timeout-3.0.1.dist-info
attr
attrs-19.3.0.dist-info
certifi
certifi-2020.4.5.1.dist-info
chardet

Не знаю, в чем проблема. что мне делать, чтобы получить все пакеты pip в контейнере нового образа? Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...