Hey folks,

Playing with from source builds and comparing them to from binary builds, I 
noticed our binary images are much larger:


>From source:


kollaglue/centos-source-magnum-api                     latest              
f822f446c882        About a minute ago   510.8 MB

kollaglue/centos-source-magnum-conductor               latest              
3246e8e4de5f        13 seconds ago       611.5 MB


>From RPMS:


kollaglue/centos-rdo-magnum-api                        latest              
afe5f2e17a8b        25 hours ago         799.5 MB

kollaglue/centos-rdo-magnum-conductor                  latest              
9e9bebe32cce        25 hours ago         900.3 MB


I spent some time using docker save to inspect the magnum-api container to 
understand why it is larger:


Binary Docker layers greater then 1MB.
[sdake@bigiron binary]$ find . -name layer.tar -exec ls -l --block-size=M {} \; 
| grep -v " 1M"

-rw-r--r-- 1 sdake sdake 87M Jul 16 16:10 
./0213734c419955d6f1029b435d9fcf419245c00cb5a77c9ae764c8cf96fc659c/layer.tar

-rw-r--r-- 1 sdake sdake 16M Jul 16 16:10 
./1f832dd654080a43cefffde22f0046182586c1a05932007e1ff6ae1ed1454dee/layer.tar

-rw-r--r-- 1 sdake sdake 172M Jul 16 16:10 
./c852f6d61e65cddf1e8af1f6cd7db78543bfb83cdcd36845541cf6d9dfef20a0/layer.tar

-rw-r--r-- 1 sdake sdake 348M Jul 16 16:10 
./a76b544b34aefbdbcf878f3ad95a1c23476d6d3b2a20321e81f6f9dd597d5409/layer.tar

-rw-r--r-- 1 sdake sdake 35M Jul 16 16:10 
./e0f5d6e410c4937ac850993215efb429644bb8c1cfc4422635cdea34ec1654fe/layer.tar

-rw-r--r-- 1 sdake sdake 16M Jul 16 16:10 
./c022916a3ca58e2cb2e8db3dc57c8db677e8f64ab4a05dc3fce34f1b15bb4d99/layer.tar

-rw-r--r-- 1 sdake sdake 21M Jul 16 16:10 
./844b2a066e8ef928881c8fca24b7b639913b9967200b19a8dc4c7a88475dcf0c/layer.tar

-rw-r--r-- 1 sdake sdake 16M Jul 16 16:10 
./193a33211e9110529208a6e1349f20cfcb9c93b47d392537cbd9d3905a5d75e1/layer.tar

-rw-r--r-- 1 sdake sdake 16M Jul 16 16:10 
./256ed6bc68ce83fdd78eb947f78e4fcb72bf9345251ab8e273eab18a5baefe8d/layer.tar

-rw-r--r-- 1 sdake sdake 19M Jul 16 16:10 
./41eae04e7c365fea3e721fe1f912ff4c65b082f85a5c7fc86e11b14c1899c111/layer.tar

-rw-r--r-- 1 sdake sdake 52M Jul 16 16:10 
./6788dec069486207cdd1e9070a07f5ee98306ac275fdb4be2230c33faff11b73/layer.tar

Source Docker layers greater then 1MB.

[sdake@bigiron source]$ find . -name layer.tar -exec ls -l --block-size=M {} \; 
| grep -v " 1M"

-rw-r--r-- 1 sdake sdake 172M Jul 16 16:09 
./c852f6d61e65cddf1e8af1f6cd7db78543bfb83cdcd36845541cf6d9dfef20a0/layer.tar

-rw-r--r-- 1 sdake sdake 73M Jul 16 16:09 
./81e4a7bb1da0bb00bdd112954a59a6148f22d36152767fab80405fc9ae7c4699/layer.tar

-rw-r--r-- 1 sdake sdake 21M Jul 16 16:09 
./85d98ac00f6e796b1be37d53436907539fac054c7231738b838f16b9a4bbc520/layer.tar

-rw-r--r-- 1 sdake sdake 16M Jul 16 16:09 
./6b1050b734d731171096bb2000283cf4e3cd3098d9e9b9cd11f43a3304262275/layer.tar

-rw-r--r-- 1 sdake sdake 225M Jul 16 16:09 
./06fb8350c94e0d7b1b1c35b9eec4b462b920ba077bdecde33db8ada7921b6264/layer.tar

-rw-r--r-- 1 sdake sdake 6M Jul 16 16:09 
./eea0d597fd6e40a30c67b712238a037efa0725b7260cefa0ff8c2714c47bb5d8/layer.tar

Layers:
Binary
87M    0213: magnum and some of its dependencies (those not in the common layer)
172M  c852: centos
348M   a756: a whole lot of python deps

source:
172M   c852 : centos
73M     81e4 magnum and all its python dependencies
225M   06fb: C toolchain and all its dependencies

The bloat on the from-source comes from the C toolchain.  The bloat on  the 
binary images comes from our common dependency layer.  We can probably just get 
rid of all the Python dependency installs that occur in the common layer and 
make things a whole lot faster when deploying at large node scales although it 
may negatively impact build speed.

Regards
-steve

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to