fuel-ccp-neutron/docker/openvswitch-base/Dockerfile.j2

85 lines
2.5 KiB
Django/Jinja

FROM {{ image_spec("base-tools") }}
MAINTAINER {{ maintainer }}
{% if ovs_version == "system" %}
RUN apt-get update && apt-get -y install --no-install-recommends \
openvswitch-switch \
&& apt-get clean
{% elif dpdk_version != "none" %}
RUN apt-get update && apt-get -y install --no-install-recommends \
gcc \
libc6-dev \
libssl-dev \
libcap-ng-dev \
libatomic1 \
pciutils \
make \
module-init-tools \
xz-utils \
&& echo Installing DPDK \
&& curl -LO {{ url.dpdk }}/dpdk-{{ dpdk_version }}.tar.xz \
&& tar -xf dpdk-{{ dpdk_version }}.tar.xz \
&& rm -f dpdk-{{ dpdk_version }}.tar.xz \
&& rename "s/-stable//" dpdk-* \
&& cd dpdk-{{ dpdk_version }} \
&& sed -i "/UIO\\|KMOD\\|KNI\\|POWER/s/=.*/=n/" config/common_linuxapp \
&& make install T=x86_64-native-linuxapp-gcc DESTDIR=install \
&& cd tools \
&& install dpdk-devbind.py dpdk-pmdinfo.py /usr/bin \
&& cd ../.. \
\
&& echo Installing OVS \
&& curl -LO {{ url.ovs }}/openvswitch-{{ ovs_version }}.tar.gz \
&& tar -xf openvswitch-{{ ovs_version }}.tar.gz \
&& rm -f openvswitch-{{ ovs_version }}.tar.gz \
&& cd openvswitch-{{ ovs_version }} \
&& ./configure \
--with-dpdk=../dpdk-{{ dpdk_version }}/x86_64-native-linuxapp-gcc \
--prefix=/usr \
--localstatedir=/var \
--sysconfdir=/etc \
&& make && make install && make clean \
&& cd .. \
\
&& echo Cleanup \
&& rm -rf dpdk-{{ dpdk_version }} \
&& rm -rf openvswitch-{{ ovs_version }} \
&& apt-get purge -y \
gcc \
libc6-dev \
make \
xz-utils \
&& apt-get autoremove -y \
&& apt-get clean
{% else %}
RUN apt-get update && apt-get -y install --no-install-recommends \
gcc \
libc6-dev \
libssl-dev \
libcap-ng-dev \
libatomic1 \
make \
module-init-tools \
&& echo Installing OVS \
&& curl -LO {{ url.ovs }}/openvswitch-{{ ovs_version }}.tar.gz \
&& tar -xf openvswitch-{{ ovs_version }}.tar.gz \
&& rm -f openvswitch-{{ ovs_version }}.tar.gz \
&& cd openvswitch-{{ ovs_version }} \
&& ./configure \
--prefix=/usr \
--localstatedir=/var \
--sysconfdir=/etc \
&& make && make install && make clean \
&& cd .. \
\
&& echo Cleanup \
&& rm -rf openvswitch-{{ ovs_version }} \
&& apt-get purge -y \
gcc \
libc6-dev \
make \
xz-utils \
&& apt-get autoremove -y \
&& apt-get clean
{% endif %}