2021-10-17 11:03:02 -05:00
##
## 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.
##
2019-06-22 13:26:23 -05:00
{ % from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
2022-05-10 04:45:28 -05:00
FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}}
2016-12-05 13:12:19 -06:00
2018-06-25 12:48:42 -05:00
ARG docker_container_name
2021-04-26 15:51:50 -05:00
2020-03-09 14:36:56 -05:00
RUN mkdir -p /var/run/sx_sdk
2017-02-16 23:48:49 -06:00
## Make apt-get non-interactive
ENV DEBIAN_FRONTEND = noninteractive
2019-06-22 13:26:23 -05:00
RUN apt-get update && \
apt-get install -y \
2021-02-24 11:49:58 -06:00
libxml2 \
2022-05-10 04:45:28 -05:00
python3-pip \
python3-dev \
python-is-python3 \
2023-01-08 10:48:56 -06:00
python3-jsonschema \
2022-04-14 17:00:32 -05:00
{ %- if ENABLE_ASAN = = "y" %}
2022-05-27 13:28:01 -05:00
libasan6 \
2022-04-14 17:00:32 -05:00
{ %- endif %}
2022-05-10 04:45:28 -05:00
python3-setuptools
2021-02-24 11:49:58 -06:00
2022-05-10 04:45:28 -05:00
RUN pip3 install --upgrade pip
2021-02-24 11:49:58 -06:00
RUN apt-get purge -y python-pip
2016-12-05 13:12:19 -06:00
2019-06-22 13:26:23 -05:00
{ % if docker_syncd_mlnx_debs.strip( ) -%}
# Copy locally-built Debian package dependencies
{ { copy_files( "debs/" , docker_syncd_mlnx_debs.split( ' ' ) , "/debs/" ) } }
2016-12-05 13:12:19 -06:00
2019-06-22 13:26:23 -05:00
# Install locally-built Debian packages and implicitly install their dependencies
{ { install_debian_packages( docker_syncd_mlnx_debs.split( ' ' ) ) } }
{ % endif %}
2019-02-05 00:06:37 -06:00
2019-06-22 13:26:23 -05:00
{ % if docker_syncd_mlnx_pydebs.strip( ) -%}
# Copy locally-built Debian package dependencies
{ { copy_files( "python-debs/" , docker_syncd_mlnx_pydebs.split( ' ' ) , "/debs/" ) } }
2016-12-05 13:12:19 -06:00
2019-06-22 13:26:23 -05:00
# Install locally-built Debian packages and implicitly install their dependencies
{ { install_debian_packages( docker_syncd_mlnx_pydebs.split( ' ' ) ) } }
{ % endif %}
2016-12-05 13:12:19 -06:00
2019-06-22 13:26:23 -05:00
## Clean up
RUN apt-get clean -y && \
apt-get autoclean -y && \
apt-get autoremove -y && \
rm -rf /debs
2019-02-05 00:06:37 -06:00
2022-04-14 17:00:32 -05:00
COPY [ "supervisord.conf.j2" , "/usr/share/sonic/templates/" ]
2019-11-09 12:26:39 -06:00
COPY [ "files/supervisor-proc-exit-listener" , "/usr/bin" ]
COPY [ "critical_processes" , "/etc/supervisor/" ]
2023-02-05 08:45:49 -06:00
COPY [ "platform_syncd_dump.sh" , "/usr/bin/" ]
2016-12-05 13:12:19 -06:00
2022-04-14 17:00:32 -05:00
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
2023-01-08 10:48:56 -06:00
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" ]
2020-11-22 23:18:44 -06:00
ENTRYPOINT [ "/usr/local/bin/supervisord" ]