c700127101
Take advantage of an SDK environment variable to customize the location where sdk_socket exists. In the latest SDK sdk_socket has been moved from /tmp to /var/run which is a better place to contain this kind of file. However, this prevents the subdirs under /var/run from being mapped to different volumes. To resolve this, we take advantage of an SDK variable to designate the location of sdk_socket. This requires every process that requires to access sdk_socket have this environment variable defined. However, to define environment variable for each process is less scalable. We take advantage of the docker scope environment variable to avoid that. It depends on PR 4227
66 lines
2.0 KiB
Django/Jinja
66 lines
2.0 KiB
Django/Jinja
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
|
|
FROM docker-syncd-mlnx
|
|
|
|
## Make apt-get non-interactive
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN mkdir -p /var/run/sx_sdk
|
|
|
|
RUN apt-get purge -y syncd
|
|
|
|
{% if docker_syncd_mlnx_rpc_debs.strip() -%}
|
|
# Copy locally-built Debian package dependencies
|
|
{{ copy_files("debs/", docker_syncd_mlnx_rpc_debs.split(' '), "/debs/") }}
|
|
|
|
# Install locally-built Debian packages and implicitly install their dependencies
|
|
{{ install_debian_packages(docker_syncd_mlnx_rpc_debs.split(' ')) }}
|
|
{% endif %}
|
|
|
|
{% if docker_syncd_mlnx_rpc_pydebs.strip() -%}
|
|
# Copy locally-built Debian package dependencies
|
|
{{ copy_files("python-debs/", docker_syncd_mlnx_rpc_pydebs.split(' '), "/debs/") }}
|
|
|
|
# Install locally-built Debian packages and implicitly install their dependencies
|
|
{{ install_debian_packages(docker_syncd_mlnx_rpc_pydebs.split(' ')) }}
|
|
{% endif %}
|
|
|
|
## Pre-install the fundamental packages
|
|
RUN apt-get update \
|
|
&& apt-get -y install \
|
|
net-tools \
|
|
python-pip \
|
|
build-essential \
|
|
libssl-dev \
|
|
libffi-dev \
|
|
python-dev \
|
|
wget \
|
|
cmake \
|
|
&& wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
|
|
&& tar xvfz 1.0.0.tar.gz \
|
|
&& cd nanomsg-1.0.0 \
|
|
&& mkdir -p build \
|
|
&& cmake . \
|
|
&& make install \
|
|
&& ldconfig \
|
|
&& cd .. \
|
|
&& rm -fr nanomsg-1.0.0 \
|
|
&& rm -f 1.0.0.tar.gz \
|
|
&& pip install cffi==1.7.0 \
|
|
&& pip install --upgrade cffi==1.7.0 \
|
|
&& pip install nnpy \
|
|
&& mkdir -p /opt \
|
|
&& cd /opt \
|
|
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
|
|
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
|
|
&& rm -rf /root/deps
|
|
|
|
COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"]
|
|
|
|
## Clean up
|
|
RUN apt-get clean -y && \
|
|
apt-get autoclean -y && \
|
|
apt-get autoremove -y && \
|
|
rm -rf /debs
|
|
|
|
ENTRYPOINT ["/usr/bin/supervisord"]
|