sonic-buildimage/dockers/docker-snmp/Dockerfile

50 lines
2.1 KiB
Docker
Raw Normal View History

FROM docker-base
2016-03-08 13:42:20 -06:00
COPY deps/snmp_*.deb deps/snmpd_*.deb deps/libsnmp-base_*.deb deps/libsnmp30_*.deb /deps/
COPY deps/python3/*.whl /python3/
2016-03-08 13:42:20 -06:00
# enable -O for all Python calls
ENV PYTHONOPTIMIZE 1
2016-03-08 13:42:20 -06:00
## Pre-install the fundamental packages
2016-03-08 13:42:20 -06:00
## Install Python SSWSDK (SNMP subagent dependancy)
## Install SNMP subagent
## Note: dpkg_apt function has the benefit to detect missing .deb file
## Clean up
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } && \
dpkg_apt /deps/libsnmp-base_*.deb && \
dpkg_apt /deps/libsnmp30_*.deb && \
dpkg_apt /deps/snmp_*.deb && \
dpkg_apt /deps/snmpd_*.deb && \
rm -rf /deps
# install subagent
2016-09-09 19:53:41 -05:00
RUN apt-get -y install build-essential wget libssl-dev openssl supervisor && \
rm -rf /var/lib/apt/lists/* && \
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz && \
tar xvf Python-3.5.2.tgz && cd Python-3.5.2 && \
./configure --without-doc-strings --prefix=/usr --without-pymalloc --enable-shared && \
make && make install && \
ldconfig && \
cd .. && rm -rf Python-3.5.2 && rm Python-3.5.2.tgz && \
pip3 install --no-cache-dir /python3/*py3*.whl hiredis && \
rm -rf /python3 && \
python3 -m pip uninstall -y pip setuptools && \
rm -rf /usr/lib/python3.5/unittest && \
rm -rf /usr/lib/python3.5/lib2to3 && \
rm -rf /usr/lib/python3.5/tkinter && \
rm -rf /usr/lib/python3.5/idlelib && \
rm -rf /usr/lib/python3.5/email && \
rm -rf /usr/lib/python3.5/test && \
2016-09-09 19:53:41 -05:00
apt-get -y purge build-essential wget libssl-dev openssl && \
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y && \
find / | grep -E "__pycache__" | xargs rm -rf && \
2016-09-09 19:53:41 -05:00
rm -rf ~/.cache
2016-09-09 19:53:41 -05:00
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
## Although exposing ports is not need for host net mode, keep it for possible bridge mode
EXPOSE 161/udp 162/udp
2016-09-09 19:53:41 -05:00
ENTRYPOINT ["/usr/bin/supervisord"]