sonic-buildimage/dockers/docker-config-engine/Dockerfile.j2
Rodny Molina 913a62c33c [configdb]: Sorting all json config-elements residing in config_db.json (#1454)
Just a simple change to make sonic's user life a little bit easier. Displaying the multiple elements of config_db.json in an orderly fashion allows a more intuitive user-experience.

For this change i'm simply intercepting the config-state that is about to be dumped to config_db.json, and i'm placing it in an ordered-dictionary, so that information is pushed to file in natural/alphanumerical ordering.

Example:

admin@lnos-x1-a-csw01:~$ sudo sonic-cfggen -m /etc/sonic/minigraph.xml --print-data
{
...
      "PORT": {
        "Ethernet0": {
             "alias": "Eth1/1",
             "lanes": "65"
},
        "Ethernet1": {
             "alias": "Eth1/2",
             "lanes": "66"
},
        "Ethernet2": {
             "alias": "Eth1/3",
             "lanes": "67"
},
        "Ethernet3": {
            "alias": "Eth1/4",
            "lanes": "68"
},
        "Ethernet4": {
             "alias": "Eth2/1",
             "lanes": "69"
},
...
...
    "INTERFACE": {
       "Ethernet0|10.0.0.0/31": {},
       "Ethernet1|10.0.0.2/31": {},
       "Ethernet2|10.0.0.4/31": {},
       "Ethernet3|10.0.0.6/31": {},
       "Ethernet4|10.0.0.8/31": {},
2018-03-09 23:51:33 -08:00

48 lines
1.1 KiB
Django/Jinja

FROM docker-base
## Make apt-get non-interactive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
# Dependencies for sonic-cfggen
RUN apt-get install -y python-lxml python-yaml python-bitarray python-pip python-dev python-natsort
RUN pip install --upgrade pip
RUN pip install netaddr ipaddr jinja2 pyangbind==0.5.10
{% if docker_config_engine_debs.strip() %}
COPY \
{% for deb in docker_config_engine_debs.split(' ') -%}
debs/{{ deb }}{{' '}}
{%- endfor -%}
debs/
{%- endif -%}
{% if docker_config_engine_debs.strip() %}
RUN dpkg -i \
{% for deb in docker_config_engine_debs.split(' ') -%}
debs/{{ deb }}{{' '}}
{%- endfor %}
{%- endif -%}
{% if docker_config_engine_whls.strip() %}
COPY \
{% for whl in docker_config_engine_whls.split(' ') -%}
python-wheels/{{ whl }}{{' '}}
{%- endfor -%}
python-wheels/
{%- endif -%}
{% if docker_config_engine_whls.strip() %}
RUN pip install \
{% for whl in docker_config_engine_whls.split(' ') -%}
python-wheels/{{ whl }}{{' '}}
{%- endfor %}
{%- endif -%}
## Clean up
RUN apt-get remove -y python-pip python-dev; apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
RUN rm -rf /debs /python-wheels