18544530d3
This is a follow-up of sonic-snmpagent PR 92 Now that licensing issues have been solved FRR is distributed with SNMP support compiled-in. This PR adds the last bits of configuration to get the frr-snmp debian packages added to the docker container and the config bits to enable the snmp module in FRR This PR brings the functionality of being able to poll bgpd for routes and peer status. Signed-off-by: Michel Moriniaux <m.moriniaux@criteo.com>
47 lines
1.4 KiB
Django/Jinja
47 lines
1.4 KiB
Django/Jinja
FROM docker-config-engine-stretch
|
|
|
|
ARG docker_container_name
|
|
ARG frr_user_uid
|
|
ARG frr_user_gid
|
|
|
|
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
|
|
|
# Make apt-get non-interactive
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Update apt's cache of available packages
|
|
RUN apt-get update
|
|
|
|
# Install required packages
|
|
RUN apt-get install -y libdbus-1-3 libdaemon0 libjansson4 libc-ares2 iproute2 libpython2.7 libjson-c3 logrotate libunwind8
|
|
|
|
{% if docker_fpm_frr_debs.strip() -%}
|
|
# Copy locally-built Debian package dependencies
|
|
{%- for deb in docker_fpm_frr_debs.split(' ') %}
|
|
COPY debs/{{ deb }} /debs/
|
|
{%- endfor %}
|
|
|
|
RUN groupadd -g ${frr_user_gid} frr
|
|
RUN useradd -u ${frr_user_uid} -g ${frr_user_gid} -M -s /bin/false frr
|
|
|
|
# Install locally-built Debian packages and implicitly install their dependencies
|
|
{%- for deb in docker_fpm_frr_debs.split(' ') %}
|
|
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /debs/{{ deb }}
|
|
{%- endfor %}
|
|
{%- endif %}
|
|
|
|
RUN chown -R ${frr_user_uid}:${frr_user_gid} /etc/frr/
|
|
|
|
# Clean up
|
|
RUN apt-get clean -y
|
|
RUN apt-get autoclean -y
|
|
RUN apt-get autoremove -y
|
|
RUN rm -rf /debs ~/.cache
|
|
|
|
COPY ["bgpcfgd", "start.sh", "/usr/bin/"]
|
|
COPY ["*.j2", "/usr/share/sonic/templates/"]
|
|
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
|
COPY ["snmp.conf", "/etc/snmp/frr.conf"]
|
|
|
|
ENTRYPOINT ["/usr/bin/supervisord"]
|