Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Telink Docker image used by Build example - Telink workflow #11287

Merged
merged 1 commit into from
Nov 3, 2021

Conversation

electrocucaracha
Copy link
Collaborator

Problem

Hadolint tool helps to build Docker images following best practices. Using those guidelines can help to reduce the size of the image and speed up the pulling process during the CI execution.

Change overview

This change uses the multi-stage builds feature to get the Zephyr SDK source code in one stage and installing it in the following stage. As result the image size has been reduced from 6.74GB to 6.61GB

Testing

This was tested locally using the act tool ($ act -j telink) using the Docker image built with these changes.

@github-actions
Copy link

github-actions bot commented Nov 1, 2021

PR #11287: Size comparison from ed04737 to 1d3ede0

Decreases (1 build for esp32)
platform target config section ed04737 1d3ede0 change % change
esp32 all-clusters-app m5stack (read only) 911163 911087 -76 -0.0
.flash.text 911163 911087 -76 -0.0
Full report (37 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section ed04737 1d3ede0 change % change
efr32 lighting-app BRD4161A (read only) 735428 735428 0 0.0
(read/write) 114444 114444 0 0.0
.bss 112692 112692 0 0.0
.data 1752 1752 0 0.0
.text 735420 735420 0 0.0
BRD4161A+rpc (read only) 722852 722852 0 0.0
(read/write) 131048 131048 0 0.0
.bss 129196 129196 0 0.0
.data 1852 1852 0 0.0
.text 722844 722844 0 0.0
lock-app BRD4161A (read only) 714712 714712 0 0.0
(read/write) 112260 112260 0 0.0
.bss 110548 110548 0 0.0
.data 1712 1712 0 0.0
.text 714704 714704 0 0.0
window-app BRD4161A (read only) 715608 715608 0 0.0
(read/write) 112588 112588 0 0.0
.bss 110868 110868 0 0.0
.data 1716 1716 0 0.0
.text 715600 715600 0 0.0
esp32 all-clusters-app c3devkit (read only) 880218 880218 0 0.0
(read/write) 1307528 1307528 0 0.0
.dram0.bss 58424 58424 0 0.0
.dram0.data 16464 16464 0 0.0
.flash.rodata 199400 199400 0 0.0
.flash.text 880218 880218 0 0.0
.iram0.text 57554 57554 0 0.0
m5stack (read only) 911163 911087 -76 -0.0
(read/write) 427296 427296 0 0.0
.dram0.bss 60920 60920 0 0.0
.dram0.data 32100 32100 0 0.0
.flash.rodata 208112 208112 0 0.0
.flash.text 911163 911087 -76 -0.0
.iram0.text 125115 125115 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 698244 698244 0 0.0
.bss 77688 77688 0 0.0
.data 1900 1900 0 0.0
.text 612856 612856 0 0.0
lock-app k32w061+debug (read/write) 590540 590540 0 0.0
.bss 68188 68188 0 0.0
.data 1864 1864 0 0.0
.text 514688 514688 0 0.0
shell k32w061+debug (read/write) 424772 424772 0 0.0
.bss 63280 63280 0 0.0
.data 672 672 0 0.0
.text 359116 359116 0 0.0
linux all-clusters-app debug (read only) 1684281 1684281 0 0.0
(read/write) 118992 118992 0 0.0
.bss 50608 50608 0 0.0
.data 1010 1010 0 0.0
.data.rel.ro 62112 62112 0 0.0
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 137781 137781 0 0.0
.text 1413442 1413442 0 0.0
bridge-app debug+rpc (read only) 1278693 1278693 0 0.0
(read/write) 84104 84104 0 0.0
.bss 50768 50768 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27368 27368 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 400 400 0 0.0
.rodata 109508 109508 0 0.0
.text 1073941 1073941 0 0.0
chip-tool debug (read only) 4313277 4313277 0 0.0
(read/write) 123552 123552 0 0.0
.bss 17680 17680 0 0.0
.data 1584 1584 0 0.0
.data.rel.ro 98880 98880 0 0.0
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 217424 217424 0 0.0
.text 3830197 3830197 0 0.0
lighting-app debug+rpc (read only) 1537665 1537665 0 0.0
(read/write) 100976 100976 0 0.0
.bss 40152 40152 0 0.0
.data 1106 1106 0 0.0
.data.rel.ro 54448 54448 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 528 528 0 0.0
.rodata 127665 127665 0 0.0
.text 1277618 1277618 0 0.0
ota-provider-app debug (read only) 1236617 1236617 0 0.0
(read/write) 67072 67072 0 0.0
.bss 36608 36608 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24616 24616 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 440 440 0 0.0
.rodata 110312 110312 0 0.0
.text 1030178 1030178 0 0.0
ota-requestor-app debug (read only) 1293841 1293841 0 0.0
(read/write) 76392 76392 0 0.0
.bss 44864 44864 0 0.0
.data 816 816 0 0.0
.data.rel.ro 25576 25576 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 121504 121504 0 0.0
.text 1074546 1074546 0 0.0
shell debug (read only) 785041 785041 0 0.0
(read/write) 57664 57664 0 0.0
.bss 16072 16072 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36848 36848 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 336 336 0 0.0
.rodata 77295 77295 0 0.0
.text 606210 606210 0 0.0
tv-app debug (read only) 1771065 1771065 0 0.0
(read/write) 288536 288536 0 0.0
.bss 222192 222192 0 0.0
.data 2032 2032 0 0.0
.data.rel.ro 58672 58672 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 153080 153080 0 0.0
.text 1476082 1476082 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2293784 2293784 0 0.0
.bss 179796 179796 0 0.0
.data 5216 5216 0 0.0
.heap 851432 851432 0 0.0
.text 1256384 1256384 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2272856 2272856 0 0.0
.bss 171836 171836 0 0.0
.data 5568 5568 0 0.0
.heap 859040 859040 0 0.0
.text 1235456 1235456 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2250576 2250576 0 0.0
.bss 170740 170740 0 0.0
.data 5552 5552 0 0.0
.heap 860152 860152 0 0.0
.text 1213176 1213176 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048328 2048328 0 0.0
.bss 156232 156232 0 0.0
.data 4968 4968 0 0.0
.heap 875248 875248 0 0.0
.text 1010928 1010928 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 860187 860187 0 0.0
bss 111148 111148 0 0.0
rodata 96340 96340 0 0.0
text 577084 577084 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 821007 821007 0 0.0
bss 107392 107392 0 0.0
rodata 87112 87112 0 0.0
text 550260 550260 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 785226 785226 0 0.0
bss 112524 112524 0 0.0
rodata 91580 91580 0 0.0
text 506552 506552 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 836895 836895 0 0.0
bss 110184 110184 0 0.0
rodata 92696 92696 0 0.0
text 558564 558564 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 762190 762190 0 0.0
bss 111596 111596 0 0.0
rodata 88000 88000 0 0.0
text 488124 488124 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497323 497323 0 0.0
bss 51824 51824 0 0.0
rodata 45776 45776 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 842875 842875 0 0.0
bss 110320 110320 0 0.0
rodata 94404 94404 0 0.0
text 562624 562624 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 836747 836747 0 0.0
bss 110220 110220 0 0.0
rodata 92692 92692 0 0.0
text 558300 558300 0 0.0
shell nrf52840dk_nrf52840 (read/write) 775903 775903 0 0.0
bss 109096 109096 0 0.0
rodata 72404 72404 0 0.0
text 519792 519792 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690906 690906 0 0.0
bss 110080 110080 0 0.0
rodata 67044 67044 0 0.0
text 440400 440400 0 0.0
p6 lock-app default (read/write) 2166576 2166576 0 0.0
.bss 66184 66184 0 0.0
.data 2416 2416 0 0.0
.heap 964744 964744 0 0.0
.text 1124840 1124840 0 0.0
qpg lighting-app qpg6100+debug (read only) 489696 489696 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50320 50320 0 0.0
.data 1000 1000 0 0.0
.text 484376 484376 0 0.0
lock-app qpg6100+debug (read only) 466024 466024 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49272 49272 0 0.0
.data 956 956 0 0.0
.text 460704 460704 0 0.0
persistent-storage-app qpg6100+debug (read only) 155820 155820 0 0.0
(read/write) 114140 114140 0 0.0
.bss 27752 27752 0 0.0
.data 372 372 0 0.0
.text 150500 150500 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 661634 661634 0 0.0
bss 68960 68960 0 0.0
noinit 33216 33216 0 0.0
text 457376 457376 0 0.0

Some of these best practices are:
* Multi-stage builds
* Pin versions
* Avoid additional packages installation
* Clean all missing after apt command

Signed-off-by: Victor Morales <v.morales@samsung.com>
@github-actions
Copy link

github-actions bot commented Nov 2, 2021

PR #11287: Size comparison from cb7c854 to 2a1f4f7

Full report (37 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section cb7c854 2a1f4f7 change % change
efr32 lighting-app BRD4161A (read only) 737128 737128 0 0.0
(read/write) 114620 114620 0 0.0
.bss 112860 112860 0 0.0
.data 1756 1756 0 0.0
.text 737120 737120 0 0.0
BRD4161A+rpc (read only) 724552 724552 0 0.0
(read/write) 131220 131220 0 0.0
.bss 129364 129364 0 0.0
.data 1856 1856 0 0.0
.text 724544 724544 0 0.0
lock-app BRD4161A (read only) 716392 716392 0 0.0
(read/write) 112436 112436 0 0.0
.bss 110716 110716 0 0.0
.data 1716 1716 0 0.0
.text 716384 716384 0 0.0
window-app BRD4161A (read only) 717308 717308 0 0.0
(read/write) 112756 112756 0 0.0
.bss 111036 111036 0 0.0
.data 1720 1720 0 0.0
.text 717300 717300 0 0.0
esp32 all-clusters-app c3devkit (read only) 880594 880594 0 0.0
(read/write) 1308072 1308072 0 0.0
.dram0.bss 58608 58608 0 0.0
.dram0.data 16464 16464 0 0.0
.flash.rodata 199768 199768 0 0.0
.flash.text 880594 880594 0 0.0
.iram0.text 57554 57554 0 0.0
m5stack (read only) 911719 911719 0 0.0
(read/write) 427844 427844 0 0.0
.dram0.bss 61112 61112 0 0.0
.dram0.data 32100 32100 0 0.0
.flash.rodata 208468 208468 0 0.0
.flash.text 911719 911719 0 0.0
.iram0.text 125115 125115 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 699408 699408 0 0.0
.bss 77856 77856 0 0.0
.data 1904 1904 0 0.0
.text 613848 613848 0 0.0
lock-app k32w061+debug (read/write) 591716 591716 0 0.0
.bss 68372 68372 0 0.0
.data 1868 1868 0 0.0
.text 515676 515676 0 0.0
shell k32w061+debug (read/write) 424884 424884 0 0.0
.bss 63296 63296 0 0.0
.data 668 668 0 0.0
.text 359216 359216 0 0.0
linux all-clusters-app debug (read only) 1690641 1690641 0 0.0
(read/write) 119696 119696 0 0.0
.bss 51152 51152 0 0.0
.data 1042 1042 0 0.0
.data.rel.ro 62240 62240 0 0.0
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 139861 139861 0 0.0
.text 1417410 1417410 0 0.0
bridge-app debug+rpc (read only) 1283597 1283597 0 0.0
(read/write) 68520 68520 0 0.0
.bss 35056 35056 0 0.0
.data 992 992 0 0.0
.data.rel.ro 27496 27496 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 400 400 0 0.0
.rodata 111460 111460 0 0.0
.text 1076581 1076581 0 0.0
chip-tool debug (read only) 4348869 4348869 0 0.0
(read/write) 124768 124768 0 0.0
.bss 18224 18224 0 0.0
.data 2224 2224 0 0.0
.data.rel.ro 98896 98896 0 0.0
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 219528 219528 0 0.0
.text 3863637 3863637 0 0.0
lighting-app debug+rpc (read only) 1542921 1542921 0 0.0
(read/write) 101712 101712 0 0.0
.bss 40728 40728 0 0.0
.data 1138 1138 0 0.0
.data.rel.ro 54560 54560 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 528 528 0 0.0
.rodata 129553 129553 0 0.0
.text 1280674 1280674 0 0.0
ota-provider-app debug (read only) 1243417 1243417 0 0.0
(read/write) 67552 67552 0 0.0
.bss 37152 37152 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24568 24568 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 440 440 0 0.0
.rodata 112360 112360 0 0.0
.text 1034978 1034978 0 0.0
ota-requestor-app debug (read only) 1310777 1310777 0 0.0
(read/write) 76872 76872 0 0.0
.bss 45408 45408 0 0.0
.data 816 816 0 0.0
.data.rel.ro 25512 25512 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 123328 123328 0 0.0
.text 1089682 1089682 0 0.0
shell debug (read only) 786625 786625 0 0.0
(read/write) 57664 57664 0 0.0
.bss 16104 16104 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36816 36816 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 336 336 0 0.0
.rodata 77839 77839 0 0.0
.text 607298 607298 0 0.0
tv-app debug (read only) 1810273 1810273 0 0.0
(read/write) 289944 289944 0 0.0
.bss 222768 222768 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 58824 58824 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 155640 155640 0 0.0
.text 1512370 1512370 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2293008 2293008 0 0.0
.bss 179964 179964 0 0.0
.data 5216 5216 0 0.0
.heap 851264 851264 0 0.0
.text 1255608 1255608 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2272008 2272008 0 0.0
.bss 172012 172012 0 0.0
.data 5568 5568 0 0.0
.heap 858864 858864 0 0.0
.text 1234608 1234608 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2249728 2249728 0 0.0
.bss 170908 170908 0 0.0
.data 5560 5560 0 0.0
.heap 859976 859976 0 0.0
.text 1212328 1212328 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048496 2048496 0 0.0
.bss 156256 156256 0 0.0
.data 4960 4960 0 0.0
.heap 875232 875232 0 0.0
.text 1011096 1011096 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 861331 861331 0 0.0
bss 111320 111320 0 0.0
rodata 96772 96772 0 0.0
text 577620 577620 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 822203 822203 0 0.0
bss 107560 107560 0 0.0
rodata 87564 87564 0 0.0
text 550796 550796 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 786370 786370 0 0.0
bss 112696 112696 0 0.0
rodata 92028 92028 0 0.0
text 507084 507084 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 838035 838035 0 0.0
bss 110356 110356 0 0.0
rodata 93140 93140 0 0.0
text 559096 559096 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 763334 763334 0 0.0
bss 111764 111764 0 0.0
rodata 88448 88448 0 0.0
text 488652 488652 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497323 497323 0 0.0
bss 51824 51824 0 0.0
rodata 45776 45776 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844147 844147 0 0.0
bss 110492 110492 0 0.0
rodata 94852 94852 0 0.0
text 563276 563276 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 837891 837891 0 0.0
bss 110392 110392 0 0.0
rodata 93140 93140 0 0.0
text 558832 558832 0 0.0
shell nrf52840dk_nrf52840 (read/write) 775991 775991 0 0.0
bss 109112 109112 0 0.0
rodata 72412 72412 0 0.0
text 519884 519884 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691026 691026 0 0.0
bss 110092 110092 0 0.0
rodata 67052 67052 0 0.0
text 440480 440480 0 0.0
p6 lock-app default (read/write) 2167984 2167984 0 0.0
.bss 66360 66360 0 0.0
.data 2416 2416 0 0.0
.heap 964568 964568 0 0.0
.text 1126248 1126248 0 0.0
qpg lighting-app qpg6100+debug (read only) 490680 490680 0 0.0
(read/write) 114140 114140 0 0.0
.bss 50416 50416 0 0.0
.data 1004 1004 0 0.0
.text 485360 485360 0 0.0
lock-app qpg6100+debug (read only) 467016 467016 0 0.0
(read/write) 114144 114144 0 0.0
.bss 49360 49360 0 0.0
.data 960 960 0 0.0
.text 461696 461696 0 0.0
persistent-storage-app qpg6100+debug (read only) 153212 153212 0 0.0
(read/write) 114140 114140 0 0.0
.bss 18336 18336 0 0.0
.data 356 356 0 0.0
.text 147892 147892 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 662798 662798 0 0.0
bss 69132 69132 0 0.0
noinit 33216 33216 0 0.0
text 457926 457926 0 0.0

@andy31415
Copy link
Contributor

andy31415 commented Nov 3, 2021

fast track: locally tested change of dockerfile updates

@andy31415 andy31415 merged commit 4947759 into project-chip:master Nov 3, 2021
@electrocucaracha electrocucaracha deleted the improve_telink branch November 3, 2021 15:36
PSONALl pushed a commit to PSONALl/connectedhomeip that referenced this pull request Dec 3, 2021
Some of these best practices are:
* Multi-stage builds
* Pin versions
* Avoid additional packages installation
* Clean all missing after apt command

Signed-off-by: Victor Morales <v.morales@samsung.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants