我正在尝试设置运行python3.6的Docker映像。我的代码依赖于某些软件包,因此我使用pip安装所有必需的软件包来构建基本映像。 基本映像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"]
我将此基本映像命名为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"]
在这个新的测试容器中,我找不到一些安装在基本映像中的软件包!
我使用wagoodman / dive:latest工具分析此测试映像,它显示/usr/local/lib/python3.6/site-packages目录中的软件包。 但是当我在容器中时,只有Django在/usr/local/lib/python3.6/site-packages中。 dive analysis
[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包放入新图片的容器中?预先感谢!