天天看点

python3.7.8的pip镜像_EulerOSPython3.7.3运维工具镜像

一、打包镜像的文件:Dockerfile

# Version 1.0.0

# wget http://ftp.jaist.ac.jp/pub/OpenBSD/LibreSSL/libressl-2.9.2.tar.gz

# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

# build cmd: docker build -t euleros-python:3.7.3 .

FROM euleros:2.0.5 as create_image

LABEL MAINTAINER="[email protected]"

RUN yum clean all && yum makecache && rpm -rebuilddb && \

yum install -y yum-utils && \

echo "[centos-base]" > /etc/yum.repos.d/CentOS-7.repo && \

echo "name=CentOS-7 - Base - mirrors.huaweicloud.com" >> /etc/yum.repos.d/CentOS-7.repo && \

echo "baseurl=https://mirrors.huaweicloud.com/centos/7/os/\$basearch/" >> /etc/yum.repos.d/CentOS-7.repo && \

echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-7.repo && \

echo "gpgkey=https://mirrors.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-7.repo && \

echo "enabled=0" >> /etc/yum.repos.d/CentOS-7.repo && \

yum makecache && \

yum-config-manager --enable centos-base && \

yum-config-manager --disable base && \

yum clean all && yum makecache && rpm -rebuilddb && \

yum erase -y uuid uuid-devel && \

yum install -y uuid uuid-devel && \

yum-config-manager --disable centos-base && \

yum-config-manager --enable base && \

yum clean all && yum makecache && rpm -rebuilddb

COPY ./libressl-2.9.2.tar.gz ./

COPY ./Python-3.7.3.tgz ./

RUN yum clean all && yum makecache && rpm -rebuilddb && \

yum install -y tar gzip && \

yum install -y gcc make zlib-devel bzip2-devel ncursess-devel sqlite-devel readline-devel xz-devel libffi-devel uuid-devel libuuid-devel gdbm-devel tk-devel && \

tar xzvf libressl-2.9.2.tar.gz && \

rm libressl-2.9.2.tar.gz && \

cd libressl-2.9.2 && \

export LD_LIBRARY_PATH=/usr/local/gcc-4.9.4/lib64:/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib && \

./configure --prefix=/usr/local/ssl && \

make -j4 && \

make install && \

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl && \

ln -s /usr/local/ssl/include/openssl /usr/include/openssl && \

echo /usr/local/ssl/lib > /etc/ld.so.conf.d/libressl-2.9.2.conf && \

ldconfig -v && \

cd .. && rm -fr ./libressl-2.9.2

RUN tar xzvf Python-3.7.3.tgz && \

rm Python-3.7.3.tgz && \

cd Python-3.7.3 && \

export CFLAGS=" -Wno-error=coverage-mismatch" && \

export CPPFLAGS=" -Wno-error=coverage-mismatch" && \

sed -i "4,9s/^/\/\//" ./Modules/_uuidmodule.c && \

sed -i "5s/\/\///" ./Modules/_uuidmodule.c && \

sed -i "s/Werror=implicit-function-declaration/Wno-error/g" ./configure && \

export LD_LIBRARY_PATH=/usr/local/gcc-4.9.4/lib64:/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib && \

./configure --prefix=/usr/local/python373 --enable-optimizations --with-openssl=/usr/local/ssl --enable-shared && \

export LANGUAGE=en_US.UTF-8 && \

export LANG=en_US.UTF-8 && \

export LC_ALL=en_US.UTF-8 && \

make -j4 && \

make install

RUN ln -s /usr/local/python373/bin/python3.7 /usr/local/bin/python3 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/local/bin/pip3 && \

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python3.7.3 && \

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python373 && \

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python3 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip3.7.3 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip373 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip3 && \

mkdir -p /root/.cache/pip/http && \

cd .. && rm -fr Python-3.7.3

ENV PATH=/usr/local/python373/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ENV LD_LIBRARY_PATH=/usr/local/python373/lib

COPY ./requirements.txt ./requirements.txt

RUN /usr/bin/python373 -m pip install --upgrade --index-url=https://mirrors.huaweicloud.com/repository/pypi/simple --trusted-host=mirrors.huaweicloud.com pip && \

/usr/bin/pip373 install --upgrade --index-url=https://mirrors.huaweicloud.com/repository/pypi/simple --trusted-host=mirrors.huaweicloud.com -r requirements.txt

RUN find /usr/local/python373 -name "__pycache__"|xargs rm -fr && \

rm -fr /root/.cache/pip/* && \

yum clean all && rm -fr /tmp/* && rm -fr /var/tmp/* && rm -fr /var/cache/*

FROM euleros:2.0.5 as copy_image

LABEL MAINTAINER="[email protected]"

COPY --from=create_image /usr/local/python373 /usr/local/python373

RUN ln -s /usr/local/python373/bin/python3.7 /usr/local/bin/python3 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/local/bin/pip3 && \

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python3.7.3 && \

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python373 && \

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python3 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip3.7.3 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip373 && \

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip3

ENV PATH=/usr/local/python373/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ENV LD_LIBRARY_PATH=/usr/local/python373/lib

二、打包镜像:

docker build -t euleros-python:3.7.3 .

三、导出编译包:

mkdir -p /tmp/python_dir

docker run -d -v /tmp/python_dir:/tmp/python_dir --name python-back euleros-python:3.7.3 /bin/bash -c "while [ true ]; do sleep 30; date '+%Y-%m-%d %H:%M:%S';done"

docker exec -it python-back /bin/bash

yum -y install tar gzip

cd /tmp/python_dir

tar cvf python373.tar /usr/local/python373

gzip python373.tar

文章来源: www.oschina.net,作者:mbzhong,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/mengyoufengyu/blog/3220738