b132ca0980
Upgrading pip3 after pip2 caused the pip command to be aliased to the pip3 command. However, since we are still transitioning from Python 2 to Python 3, most pip commands in the codebase are expecting pip to alias to pip2. The proper solution here is to explicitly call pip2 and pip3, and no longer call pip, however this will require extensive changes and testing, so to quickly fix this issue, we upgraded pip2 after pip3 to ensure that pip2 is installed after pip3.
57 lines
2.0 KiB
Django/Jinja
57 lines
2.0 KiB
Django/Jinja
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
|
|
FROM docker-base-buster
|
|
|
|
## Make apt-get non-interactive
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
build-essential \
|
|
python-pip \
|
|
python3-pip \
|
|
python-dev \
|
|
python3-dev \
|
|
apt-utils \
|
|
python-setuptools \
|
|
python3-setuptools
|
|
|
|
RUN pip3 install --upgrade pip
|
|
RUN pip2 install --upgrade pip
|
|
RUN apt-get purge -y python-pip python3-pip
|
|
|
|
# For sonic-config-engine Python 3 package
|
|
# Explicitly install pyangbind here, as pyangbind causes enum34 to be installed.
|
|
# enum34 causes Python 're' package to not work properly as it redefines an incompatible enum.py module
|
|
# https://github.com/robshakir/pyangbind/issues/232
|
|
RUN pip3 install pyangbind==0.8.1
|
|
RUN pip3 uninstall -y enum34
|
|
|
|
{% if docker_config_engine_buster_debs.strip() %}
|
|
# Copy locally-built Debian package dependencies
|
|
{{ copy_files("debs/", docker_config_engine_buster_debs.split(' '), "/debs/") }}
|
|
|
|
# Install locally-built Debian packages and implicitly install their dependencies
|
|
{{ install_debian_packages(docker_config_engine_buster_debs.split(' ')) }}
|
|
{% endif %}
|
|
|
|
{% if docker_config_engine_buster_whls.strip() %}
|
|
# Copy locally-built Python wheel dependencies
|
|
{{ copy_files("python-wheels/", docker_config_engine_buster_whls.split(' '), "/python-wheels/") }}
|
|
|
|
# Install locally-built Python wheel dependencies
|
|
{{ install_python_wheels(docker_config_engine_buster_whls.split(' ')) }}
|
|
{% endif %}
|
|
|
|
# Copy files
|
|
COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"]
|
|
|
|
## Clean up
|
|
RUN apt-get purge -y \
|
|
python-dev \
|
|
python3-dev \
|
|
build-essential && \
|
|
apt-get clean -y && \
|
|
apt-get autoclean -y && \
|
|
apt-get autoremove -y && \
|
|
rm -rf /debs /python-wheels
|