Skip to content

Commit b9ca7e2

Browse files
committed
PR 92604: Sync repo: Github/master -> master
- SNMP/LLDP Containers: Sonic V2 Support (#41) - start.sh: Remove rsyslogd.pid file on mlnx syncd docker (#35) - check the existence of platforms/ before including it (#37) - build mft-kernel binary debian package (#36) - Apply swss configuration in a deterministic way (#39) - Dockerfile: Add libsaimetadata dependency (#42) - Dockerfile: Add bridge-utils to p4 docker (#43) - Add docker configuration for saiserver-brcm (#44) - Modification to saiserver-brcm/Dockerfile (#45) - Update get_docker-base.sh ...
2 parents a840325 + e6e819a commit b9ca7e2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+561
-158
lines changed

Makefile

+41-36
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
USERNAME=
55
PASSWORD_ENCRYPTED=
66

7+
## Redis server/tools version
8+
REDIS_VERSION=3.2.4-1~bpo8+1_amd64
9+
710
## Select bash for commands
811
SHELL := /bin/bash
912

@@ -12,8 +15,8 @@ MLNX-SDK-DEBS=$(notdir $(wildcard src/mlnx-sdk/*.deb))
1215
BRCM-SDK-DEBS=$(notdir $(wildcard src/brcm-sdk/*.deb))
1316
CAVM-SDK-DEBS=$(notdir $(wildcard src/cavm-sdk/*.deb))
1417

15-
LIBNL-DEBS=libnl-3-200_3.2.27-1_amd64.deb libnl-genl-3-200_3.2.27-1_amd64.deb libnl-route-3-200_3.2.27-1_amd64.deb
16-
LIBTEAM-DEBS=libteam5_1.26-1_amd64.deb libteam-dev_1.26-1_amd64.deb libteam-utils_1.26-1_amd64.deb libteamdctl0_1.26-1_amd64.deb
18+
LIBNL-DEBS=libnl-3-200_3.2.27-1_amd64.deb libnl-3-dev_3.2.27-1_amd64.deb libnl-genl-3-200_3.2.27-1_amd64.deb libnl-genl-3-dev_3.2.27-1_amd64.deb libnl-route-3-200_3.2.27-1_amd64.deb libnl-route-3-dev_3.2.27-1_amd64.deb libnl-nf-3-200_3.2.27-1_amd64.deb libnl-nf-3-dev_3.2.27-1_amd64.deb libnl-cli-3-200_3.2.27-1_amd64.deb libnl-cli-3-dev_3.2.27-1_amd64.deb
19+
LIBTEAM-DEBS=libteam5_1.26-1_amd64.deb libteamdctl0_1.26-1_amd64.deb libteam-dev_1.26-1_amd64.deb libteam-utils_1.26-1_amd64.deb
1720

1821
## Function: build_docker, image_name save_file
1922
## build a docker image and save to a file
@@ -22,14 +25,18 @@ define build_docker
2225
mkdir -p `dirname $(2)`
2326
docker save $(1) | gzip -c > $(2)
2427
endef
25-
28+
2629
## Rules: phony targets
2730
.phony : brcm-all mlnx-all cavm-all p4-all
2831

2932
## Rules: redirect to sub directory
3033
src/%:
31-
$(MAKE) -C src $(subst src/,,$@)
32-
34+
$(MAKE) \
35+
REDIS_VERSION=$(REDIS_VERSION) \
36+
LIBNL-DEBS="$(LIBNL-DEBS)" \
37+
LIBTEAM-DEBS="$(LIBTEAM-DEBS)" \
38+
-C src $(subst src/,,$@)
39+
3340
## Rules: docker-fpm
3441
dockers/docker-fpm/deps/fpmsyncd: src/fpmsyncd
3542
mkdir -p `dirname $@` && cp $< $(dir $@)
@@ -41,35 +48,29 @@ dockers/docker-team/deps/teamsyncd: src/teamsyncd
4148
mkdir -p `dirname $@` && cp $< $(dir $@)
4249
dockers/docker-team/deps/%.deb: src/%.deb
4350
mkdir -p `dirname $@` && cp $< $(dir $@)
44-
51+
4552
## Rules: docker-orchagent-mlnx
46-
dockers/docker-orchagent-mlnx/deps/libsairedis_1.0.0_amd64.deb: src/mlnx/libsairedis_1.0.0_amd64.deb
47-
mkdir -p `dirname $@` && cp $< $(dir $@)
48-
dockers/docker-orchagent-mlnx/deps/swss_1.0.0_amd64.deb: src/mlnx/swss_1.0.0_amd64.deb
53+
$(addprefix dockers/docker-orchagent-mlnx/deps/,libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb) : dockers/docker-orchagent-mlnx/deps/%.deb : src/mlnx/%.deb
4954
mkdir -p `dirname $@` && cp $< $(dir $@)
5055
dockers/docker-orchagent-mlnx/deps/%.deb: src/%.deb
5156
mkdir -p `dirname $@` && cp $< $(dir $@)
52-
57+
5358
## Rules: docker-orchagent-cavm
54-
dockers/docker-orchagent-cavm/deps/libsairedis_1.0.0_amd64.deb: src/cavm/libsairedis_1.0.0_amd64.deb
55-
mkdir -p `dirname $@` && cp $< $(dir $@)
56-
dockers/docker-orchagent-cavm/deps/swss_1.0.0_amd64.deb: src/cavm/swss_1.0.0_amd64.deb
59+
$(addprefix dockers/docker-orchagent-cavm/deps/,libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb) : dockers/docker-orchagent-cavm/deps/%.deb : src/cavm/%.deb
5760
mkdir -p `dirname $@` && cp $< $(dir $@)
5861
dockers/docker-orchagent-cavm/deps/%.deb: src/%.deb
5962
mkdir -p `dirname $@` && cp $< $(dir $@)
6063

6164
## Rules: docker-orchagent (brcm)
62-
dockers/docker-orchagent/deps/libsairedis_1.0.0_amd64.deb: src/brcm/libsairedis_1.0.0_amd64.deb
63-
mkdir -p `dirname $@` && cp $< $(dir $@)
64-
dockers/docker-orchagent/deps/swss_1.0.0_amd64.deb: src/brcm/swss_1.0.0_amd64.deb
65+
$(addprefix dockers/docker-orchagent/deps/,libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb) : dockers/docker-orchagent/deps/%.deb : src/brcm/%.deb
6566
mkdir -p `dirname $@` && cp $< $(dir $@)
6667
dockers/docker-orchagent/deps/%.deb: src/%.deb
6768
mkdir -p `dirname $@` && cp $< $(dir $@)
68-
69+
6970
## Rules: docker-syncd-mlnx
7071
$(addprefix dockers/docker-syncd-mlnx/deps/,$(MLNX-SDK-DEBS)) : dockers/docker-syncd-mlnx/deps/%.deb : src/mlnx-sdk/%.deb
7172
mkdir -p `dirname $@` && cp $< $(dir $@)
72-
$(addprefix dockers/docker-syncd-mlnx/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb) : dockers/docker-syncd-mlnx/deps/%.deb : src/mlnx/%.deb
73+
$(addprefix dockers/docker-syncd-mlnx/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb) : dockers/docker-syncd-mlnx/deps/%.deb : src/mlnx/%.deb
7374
mkdir -p `dirname $@` && cp $< $(dir $@)
7475
dockers/docker-syncd-mlnx/deps/%.deb: src/%.deb
7576
mkdir -p `dirname $@` && cp $< $(dir $@)
@@ -79,21 +80,25 @@ dockers/docker-syncd-mlnx/deps/fw-SPC.mfa: src/mlnx-sdk/fw-SPC.mfa
7980
## Rules: docker-syncd-cavm
8081
$(addprefix dockers/docker-syncd-cavm/deps/,$(CAVM-SDK-DEBS)) : dockers/docker-syncd-cavm/deps/%.deb : src/cavm-sdk/%.deb
8182
mkdir -p `dirname $@` && cp $< $(dir $@)
82-
$(addprefix dockers/docker-syncd-cavm/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb) : dockers/docker-syncd-cavm/deps/%.deb : src/cavm/%.deb
83+
$(addprefix dockers/docker-syncd-cavm/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb) : dockers/docker-syncd-cavm/deps/%.deb : src/cavm/%.deb
8384
mkdir -p `dirname $@` && cp $< $(dir $@)
8485
dockers/docker-syncd-cavm/deps/%.deb: src/%.deb
8586
mkdir -p `dirname $@` && cp $< $(dir $@)
8687

8788
## Rules: docker-syncd (brcm)
8889
$(addprefix dockers/docker-syncd/deps/,$(BRCM-SDK-DEBS)) : dockers/docker-syncd/deps/%.deb : src/brcm-sdk/%.deb
8990
mkdir -p `dirname $@` && cp $< $(dir $@)
90-
$(addprefix dockers/docker-syncd/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb): dockers/docker-syncd/deps/%.deb : src/brcm/%.deb
91+
$(addprefix dockers/docker-syncd/deps/,syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb): dockers/docker-syncd/deps/%.deb : src/brcm/%.deb
9192
mkdir -p `dirname $@` && cp $< $(dir $@)
9293
dockers/docker-syncd/deps/%.deb: src/%.deb
9394
mkdir -p `dirname $@` && cp $< $(dir $@)
9495

96+
## Rules: docker-database
97+
dockers/docker-database/deps/%.deb: src/%.deb
98+
mkdir -p `dirname $@` && cp $< $(dir $@)
99+
95100
## Rules: docker-sonic (p4)
96-
$(addprefix dockers/docker-sonic-p4/deps/,swss_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb) : dockers/docker-sonic-p4/deps/%.deb : src/p4/%.deb
101+
$(addprefix dockers/docker-sonic-p4/deps/,swss_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb) : dockers/docker-sonic-p4/deps/%.deb : src/p4/%.deb
97102
mkdir -p `dirname $@` && cp $< $(dir $@)
98103
dockers/docker-sonic-p4/deps/%.deb: src/%.deb
99104
mkdir -p `dirname $@` && cp $< $(dir $@)
@@ -102,45 +107,45 @@ dockers/docker-sonic-p4/deps/%.deb: src/%.deb
102107
target/docker-base.gz:
103108
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
104109

105-
target/docker-syncd.gz: target/docker-base.gz $(addprefix dockers/docker-syncd/deps/,$(BRCM-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb syncd_1.0.0_amd64.deb $(LIBNL-DEBS))
110+
target/docker-syncd.gz: target/docker-base.gz $(addprefix dockers/docker-syncd/deps/,$(BRCM-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb $(LIBNL-DEBS))
106111
## TODO: remove placeholders for the dependencies
107112
touch dockers/docker-syncd/deps/{dsserve,bcmcmd}
108113
docker load < $<
109114
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
110-
111-
target/docker-syncd-mlnx.gz: target/docker-base.gz $(addprefix dockers/docker-syncd-mlnx/deps/,$(MLNX-SDK-DEBS) applibs_1.mlnx.4.2.2100_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb $(LIBNL-DEBS)) dockers/docker-syncd-mlnx/deps/fw-SPC.mfa
115+
116+
target/docker-syncd-mlnx.gz: target/docker-base.gz $(addprefix dockers/docker-syncd-mlnx/deps/,$(MLNX-SDK-DEBS) applibs_1.mlnx.4.2.2100_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb $(LIBNL-DEBS)) dockers/docker-syncd-mlnx/deps/fw-SPC.mfa
112117
docker load < $<
113118
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
114119

115-
target/docker-syncd-cavm.gz: target/docker-base.gz $(addprefix dockers/docker-syncd-cavm/deps/,$(CAVM-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb)
120+
target/docker-syncd-cavm.gz: target/docker-base.gz $(addprefix dockers/docker-syncd-cavm/deps/,$(CAVM-SDK-DEBS) libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb syncd_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb $(LIBNL-DEBS))
116121
docker load < $<
117122
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
118-
119-
target/docker-orchagent.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
123+
124+
target/docker-orchagent.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
120125
docker load < $<
121126
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
122-
123-
target/docker-orchagent-mlnx.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent-mlnx/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
127+
128+
target/docker-orchagent-mlnx.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent-mlnx/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
124129
docker load < $<
125130
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
126131

127-
target/docker-orchagent-cavm.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent-cavm/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
132+
target/docker-orchagent-cavm.gz: target/docker-base.gz $(addprefix dockers/docker-orchagent-cavm/deps/,libhiredis0.13_0.13.3-2_amd64.deb libswsscommon_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb swss_1.0.0_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS))
128133
docker load < $<
129134
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
130-
131-
target/docker-fpm.gz: target/docker-base.gz $(addprefix dockers/docker-fpm/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb quagga_0.99.24.1-2_amd64.deb fpmsyncd)
135+
136+
target/docker-fpm.gz: target/docker-base.gz $(addprefix dockers/docker-fpm/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb quagga_0.99.24.1-2.1_amd64.deb fpmsyncd $(LIBNL-DEBS))
132137
docker load < $<
133138
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
134139

135-
target/docker-team.gz: target/docker-base.gz $(addprefix dockers/docker-team/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb $(LIBTEAM-DEBS))
140+
target/docker-team.gz: target/docker-base.gz $(addprefix dockers/docker-team/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb $(LIBNL-DEBS) $(LIBTEAM-DEBS) teamsyncd)
136141
docker load < $<
137142
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
138-
139-
target/docker-database.gz: target/docker-base.gz
143+
144+
target/docker-database.gz: target/docker-base.gz $(addprefix dockers/docker-database/deps/,redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb)
140145
docker load < $<
141146
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
142147

143-
target/docker-sonic-p4.gz: target/docker-base.gz $(addprefix dockers/docker-sonic-p4/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb quagga_0.99.24.1-2_amd64.deb syncd_1.0.0_amd64.deb swss_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libthrift-0.9.3_0.9.3-2_amd64.deb redis-server_3.0.7-2_amd64.deb redis-tools_3.0.7-2_amd64.deb p4-bmv2_1.0.0_amd64.deb p4-switch_1.0.0_amd64.deb)
148+
target/docker-sonic-p4.gz: target/docker-base.gz $(addprefix dockers/docker-sonic-p4/deps/,libswsscommon_1.0.0_amd64.deb libhiredis0.13_0.13.3-2_amd64.deb quagga_0.99.24.1-2.1_amd64.deb syncd_1.0.0_amd64.deb swss_1.0.0_amd64.deb libsairedis_1.0.0_amd64.deb libsaimetadata_1.0.0_amd64.deb libthrift-0.9.3_0.9.3-2_amd64.deb redis-server_$(REDIS_VERSION).deb redis-tools_$(REDIS_VERSION).deb p4-bmv2_1.0.0_amd64.deb p4-switch_1.0.0_amd64.deb)
144149
docker load < $<
145150
$(call build_docker,$(patsubst target/%.gz,%,$@),$@)
146151

build_debian.sh

+13-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ trap_push clean_sys
9090
sudo LANG=C chroot $FILESYSTEM_ROOT mount sysfs /sys -t sysfs
9191

9292
## Pointing apt to public apt mirrors and getting latest packages, needed for latest security updates
93-
sudo cp dockers/docker-base/sources.list $FILESYSTEM_ROOT/etc/apt/
93+
sudo cp files/apt/sources.list $FILESYSTEM_ROOT/etc/apt/
9494
sudo cp files/apt/apt.conf.d/{81norecommends,apt-{clean,gzip-indexes,no-languages}} $FILESYSTEM_ROOT/etc/apt/apt.conf.d/
9595
sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'apt-mark auto `apt-mark showmanual`'
9696

@@ -198,6 +198,11 @@ sudo augtool --autosave "set /files/etc/ssh/sshd_config/UseDNS no" -r $FILESYSTE
198198
sudo mkdir -p $FILESYSTEM_ROOT/var/core
199199
sudo augtool --autosave "
200200
set /files/etc/sysctl.conf/kernel.core_pattern '|/usr/bin/coredump-compress %e %p'
201+
202+
set /files/etc/sysctl.conf/net.ipv4.conf.default.forwarding 1
203+
set /files/etc/sysctl.conf/net.ipv4.conf.all.forwarding 1
204+
set /files/etc/sysctl.conf/net.ipv4.conf.eth0.forwarding 0
205+
201206
set /files/etc/sysctl.conf/net.ipv4.conf.default.arp_accept 0
202207
set /files/etc/sysctl.conf/net.ipv4.conf.default.arp_announce 0
203208
set /files/etc/sysctl.conf/net.ipv4.conf.default.arp_filter 0
@@ -208,6 +213,13 @@ set /files/etc/sysctl.conf/net.ipv4.conf.all.arp_announce 1
208213
set /files/etc/sysctl.conf/net.ipv4.conf.all.arp_filter 0
209214
set /files/etc/sysctl.conf/net.ipv4.conf.all.arp_notify 1
210215
set /files/etc/sysctl.conf/net.ipv4.conf.all.arp_ignore 2
216+
217+
set /files/etc/sysctl.conf/net.ipv6.conf.default.forwarding 1
218+
set /files/etc/sysctl.conf/net.ipv6.conf.all.forwarding 1
219+
set /files/etc/sysctl.conf/net.ipv6.conf.eth0.forwarding 0
220+
221+
set /files/etc/sysctl.conf/net.ipv6.conf.default.accept_dad 0
222+
set /files/etc/sysctl.conf/net.ipv6.conf.all.accept_dad 0
211223
" -r $FILESYSTEM_ROOT
212224

213225
## docker-py is needed by Ansible docker module

dockers/docker-database/Dockerfile

+12-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
FROM docker-base
22

3-
## Pre-install the fundamental packages
3+
COPY ["deps/redis-tools_*.deb", "deps/redis-server_*.deb", "/deps/"]
4+
5+
## Install packages
46
## Clean up
5-
RUN apt-get -y install \
6-
redis-server \
7-
&& \
7+
RUN apt-get update && \
8+
dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; \
9+
dpkg_apt /deps/redis-tools_*.deb && \
10+
dpkg_apt /deps/redis-server_*.deb && \
811
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y
912

10-
RUN sed -ri 's/^daemonize yes$/daemonize no/' /etc/redis/redis.conf \
11-
&& sed -ri 's/^logfile .*$/logfile ""/' /etc/redis/redis.conf \
12-
&& sed -ri 's/^# syslog-enabled no$/syslog-enabled no/' /etc/redis/redis.conf
13+
RUN sed -ri 's/^daemonize yes$/daemonize no/; \
14+
s/^logfile .*$/logfile ""/; \
15+
s/^# syslog-enabled no$/syslog-enabled no/; \
16+
s/^# unixsocket/unixsocket/ \
17+
' /etc/redis/redis.conf
1318

1419
ENTRYPOINT service redis-server start

dockers/docker-fpm/Dockerfile

+8-5
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@ FROM docker-base
22

33
RUN apt-get update
44

5-
COPY ["deps/libhiredis0.13*.deb", "deps/libswsscommon_*.deb", "deps/quagga_*", "/deps/"]
5+
COPY ["deps/libhiredis0.13*.deb", "deps/libnl-3-200_*.deb", "deps/libnl-genl-3-200_*.deb", "deps/libnl-route-3-200_*.deb", "deps/libswsscommon_*.deb", "deps/quagga_*", "/deps/"]
66

77
## Get fpmsyncd
8-
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libhiredis0.13*.deb
9-
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/libswsscommon_*.deb
10-
118
## Get Quagga
12-
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /deps/quagga_*.deb
9+
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; \
10+
dpkg_apt /deps/libhiredis0.13*.deb \
11+
&& dpkg_apt /deps/libnl-3-200_*.deb \
12+
&& dpkg_apt /deps/libnl-genl-3-200_*.deb \
13+
&& dpkg_apt /deps/libnl-route-3-200_*.deb \
14+
&& dpkg_apt /deps/libswsscommon_*.deb \
15+
&& dpkg_apt /deps/quagga_*.deb
1316

1417
COPY ["deps/fpmsyncd", "start.sh", "/usr/bin/"]
1518

dockers/docker-lldp-sv2/Dockerfile

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM docker-base
2+
3+
COPY deps/sswsdk*.whl deps/sonic_d*.whl deps/lldpsyncd_*.deb deps/lldpd_*.deb /deps/
4+
5+
## Pre-install the fundamental packages
6+
## Install Python SSWSDK (lldpsyncd dependency)
7+
## Install LLDP Sync Daemon
8+
## Note: dpkg_apt function has the benefit to detect missing .deb file
9+
## Clean up
10+
RUN apt-get update && \
11+
dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } && \
12+
dpkg_apt /deps/lldpd_*.deb && \
13+
apt-get install -y python-pip supervisor && \
14+
pip install /deps/sswsdk*.whl && \
15+
pip install /deps/sonic_d*.whl && \
16+
apt-get remove -y python-pip && \
17+
apt-get purge -y && apt-get autoclean -y && apt-get autoremove -y && \
18+
rm -rf /deps ~/.cache
19+
20+
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
21+
COPY reconfigure.sh /opt/reconfigure.sh
22+
23+
ENTRYPOINT ["/usr/bin/supervisord"]
+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
num_of_interfaces=32
6+
if_step=4
7+
last_if_idx=$((num_of_interfaces*if_step - if_step))
8+
9+
function wait_until_if_exists
10+
{
11+
if=$1
12+
while [ ! -L /sys/class/net/"$if" ] ;
13+
do
14+
sleep 1
15+
done
16+
echo interface "$if" is created
17+
}
18+
19+
20+
function wait_until_if_not_exists
21+
{
22+
if=$1
23+
while [ -L /sys/class/net/"$if" ] ;
24+
do
25+
sleep 1
26+
done
27+
echo interface "$if" is destroyed
28+
}
29+
30+
31+
while /bin/true ;
32+
do
33+
# wait until all interfaces are created
34+
echo Wait until all ifaces are created
35+
for i in $(seq 0 $if_step $last_if_idx)
36+
do
37+
wait_until_if_exists "Ethernet$i"
38+
done
39+
40+
echo Wait 10 seconds while lldpd finds new interfaces
41+
sleep 10
42+
43+
# apply lldpd configuration
44+
echo apply lldpd configuration
45+
lldpcli -c /etc/lldpd.conf
46+
47+
# wait until all interfaces are destroyed
48+
echo Wait until all ifaces are destroyed
49+
for i in $(seq 0 $if_step $last_if_idx)
50+
do
51+
wait_until_if_not_exists "Ethernet$i"
52+
done
53+
done
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[supervisord]
2+
nodaemon=true
3+
4+
[program:lldpd]
5+
# https://github.com/vincentbernat/lldpd/commit/9856f2792c301116cc4a3fcfba91b9672ee5db1f
6+
# - `-d` means to stay in foreground, log to syslog
7+
# - `-dd` means to stay in foreground, log warnings to console
8+
# - `-ddd` means to stay in foreground, log warnings and info to console
9+
# - `-dddd` means to stay in foreground, log all to console
10+
command=/usr/sbin/lldpd -d -I Ethernet*,eth*
11+
priority=100
12+
13+
[program:lldpd-conf-reload]
14+
command=/opt/reconfigure.sh
15+
priority=150
16+
17+
[program:lldp-syncd]
18+
command=/usr/bin/env python2 -m lldp_syncd
19+
priority=200
20+
21+
[program:rsyslogd]
22+
command=/usr/sbin/rsyslogd -n
23+
priority=1

0 commit comments

Comments
 (0)