## ## Copyright (c) 2016-2021 NVIDIA CORPORATION & AFFILIATES. ## Apache-2.0 ## ## Licensed under the Apache License, Version 2.0 (the "License"); ## you may not use this file except in compliance with the License. ## You may obtain a copy of the License at ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Unless required by applicable law or agreed to in writing, software ## distributed under the License is distributed on an "AS IS" BASIS, ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## See the License for the specific language governing permissions and ## limitations under the License. ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN mkdir -p /var/run/sx_sdk ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get install -y \ libxml2 \ python3-pip \ python3-dev \ python-is-python3 \ python3-jsonschema \ {%- if ENABLE_ASAN == "y" %} libasan6 \ {%- endif %} python3-setuptools RUN pip3 install --upgrade pip RUN apt-get purge -y python-pip {% if docker_syncd_mlnx_debs.strip() -%} # Copy locally-built Debian package dependencies {{ copy_files("debs/", docker_syncd_mlnx_debs.split(' '), "/debs/") }} # Install locally-built Debian packages and implicitly install their dependencies {{ install_debian_packages(docker_syncd_mlnx_debs.split(' ')) }} {% endif %} {% if docker_syncd_mlnx_pydebs.strip() -%} # Copy locally-built Debian package dependencies {{ copy_files("python-debs/", docker_syncd_mlnx_pydebs.split(' '), "/debs/") }} # Install locally-built Debian packages and implicitly install their dependencies {{ install_debian_packages(docker_syncd_mlnx_pydebs.split(' ')) }} {% endif %} ## Clean up RUN apt-get clean -y && \ apt-get autoclean -y && \ apt-get autoremove -y && \ rm -rf /debs COPY ["supervisord.conf.j2", "/usr/share/sonic/templates/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor/"] RUN mkdir -p /etc/supervisor/conf.d/ RUN sonic-cfggen -a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf RUN rm -f /usr/share/sonic/templates/supervisord.conf.j2 RUN mkdir -p /usr/lib/ecmp_calc COPY ["ecmp_calculator/ecmp_calc.py", "/usr/bin"] COPY ["ecmp_calculator/ecmp_calc_sdk.py", "/usr/lib/ecmp_calc"] COPY ["ecmp_calculator/packet_scheme.py", "/usr/lib/ecmp_calc"] COPY ["lib/port_utils.py", "/usr/lib"] ENTRYPOINT ["/usr/local/bin/supervisord"]