Skip to content

Instantly share code, notes, and snippets.

@jonjohnsonjr
Last active February 12, 2021 23:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonjohnsonjr/283eab27d996b2f4cc045530283b40be to your computer and use it in GitHub Desktop.
Save jonjohnsonjr/283eab27d996b2f4cc045530283b40be to your computer and use it in GitHub Desktop.
# Every layer changed in this image, so did the config
$ diff <(crane manifest --platform linux/amd64 mcr.microsoft.com/dotnet/sdk:5.0.102-1-alpine3.12 | jq .) <(crane manifest --platform linux/amd64 mcr.microsoft.com/dotnet/sdk:5.0-alpine | jq .)
2021/02/12 15:08:51 No matching credentials were found for "mcr.microsoft.com/dotnet/sdk", falling back on anonymous
2021/02/12 15:08:51 No matching credentials were found for "mcr.microsoft.com/dotnet/sdk", falling back on anonymous
6,7c6,7
< "size": 7741,
< "digest": "sha256:7849a342a23f9d62d600202ffa064b696c113f19ce111e2ee44be97905a8edd9"
---
> "size": 7738,
> "digest": "sha256:59a7d9b416d8fdf795556987840689d892e1b1db74840e7dec705815324cff25"
12,13c12,13
< "size": 2799066,
< "digest": "sha256:801bfaa63ef2094d770c809815b9e2b9c1194728e5e754ef7bc764030e140cea"
---
> "size": 2811321,
> "digest": "sha256:4c0d98bf9879488e0407f897d9dd4bf758555a78e39675e72b5124ccf12c2580"
17,18c17,18
< "size": 1726027,
< "digest": "sha256:5baca56f78036002fb2fa556dd671c5440e7580339be705070c4d4909b83f972"
---
> "size": 1750842,
> "digest": "sha256:3c97837ed36a17a08326582e9c7ef4d07d343cf83a8e59aeea9f671f1059afb2"
22,23c22,23
< "size": 31232634,
< "digest": "sha256:2c904c7b2cfa190067456905fd27a76f0f5fe7d3ed659f3a164ca8e75af582a5"
---
> "size": 31233726,
> "digest": "sha256:fd1ceae440450c8811141fb68ce3d2ba0b0852280ee95aca5abf98821ba339aa"
27,28c27,28
< "size": 8651793,
< "digest": "sha256:244ee045236d7b1f68ffe2485121b007bae7b712d66344b9da6e22b264aeebc7"
---
> "size": 8652954,
> "digest": "sha256:804ffefbc08627f3d3440c87bf771fd9266d52fc8e565451167060676ed19804"
32,33c32,33
< "size": 22171061,
< "digest": "sha256:4ac7fe13b831adf4de49060380bb3ef3fc69099d3aa99a35f798cd479ce64b13"
---
> "size": 20264336,
> "digest": "sha256:1040a3d8bb39d4702a8131ae062251ceb810f238cea222504a33af4535b2b286"
37,38c37,38
< "size": 99817927,
< "digest": "sha256:4d2d863a32387a2d24e0bda4311a7ed021e85a586d3c182bcf958496f57bb9da"
---
> "size": 99827951,
> "digest": "sha256:424b09ecd3a2d43838cab2a451993736df70d0118a5c6edd75e7b073f345176c"
42,43c42,43
< "size": 12709914,
< "digest": "sha256:70f67b1ca1669e10eb314b5416f4cfc50c30e4d111dd5424109ecf189d0bd44a"
---
> "size": 12715733,
> "digest": "sha256:2e112740d22304f5fdd35b1eb8a8e003031a4be5922a889d9219436133b23fde"
# Looking at the config, we can see which environment variables and Dockerfile directives changed
$ diff <(crane config mcr.microsoft.com/dotnet/sdk:5.0.102-1-alpine3.12 | jq .) <(crane config mcr.microsoft.com/dotnet/sdk:5.0-alpine | jq .)
2021/02/12 15:07:21 No matching credentials were found for "mcr.microsoft.com/dotnet/sdk", falling back on anonymous
2021/02/12 15:07:21 No matching credentials were found for "mcr.microsoft.com/dotnet/sdk", falling back on anonymous
18,20c18,20
< "DOTNET_VERSION=5.0.2",
< "ASPNET_VERSION=5.0.2",
< "DOTNET_SDK_VERSION=5.0.102",
---
> "DOTNET_VERSION=5.0.3",
> "ASPNET_VERSION=5.0.3",
> "DOTNET_SDK_VERSION=5.0.103",
23c23
< "POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.12"
---
> "POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.13"
28c28
< "Image": "sha256:3aeb6ab59e08fd0b87e025389b075f5ef18a9b37167eeef0a2ff4c48016c039e",
---
> "Image": "sha256:fc212f06a131e7771af2515f421edeac75b1c165cea4b2c0288c35250b0464b6",
35c35
< "container": "aec470987dfb7e053ce53b3bf9801eb4d54cd8d2fc2dcc7b884686cdec314e30",
---
> "container": "15dc5637019a6df337af594083a871d5e58bfdeee6f40cc51b1390b24351b749",
51,53c51,53
< "DOTNET_VERSION=5.0.2",
< "ASPNET_VERSION=5.0.2",
< "DOTNET_SDK_VERSION=5.0.102",
---
> "DOTNET_VERSION=5.0.3",
> "ASPNET_VERSION=5.0.3",
> "DOTNET_SDK_VERSION=5.0.103",
56c56
< "POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.12"
---
> "POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.13"
63c63
< "Image": "sha256:3aeb6ab59e08fd0b87e025389b075f5ef18a9b37167eeef0a2ff4c48016c039e",
---
> "Image": "sha256:fc212f06a131e7771af2515f421edeac75b1c165cea4b2c0288c35250b0464b6",
70,71c70,71
< "created": "2021-01-19T15:56:26.675520532Z",
< "docker_version": "19.03.14+azure",
---
> "created": "2021-02-09T16:43:03.16349807Z",
> "docker_version": "20.10.2+azure",
74,75c74,75
< "created": "2020-12-17T00:19:41.960367136Z",
< "created_by": "/bin/sh -c #(nop) ADD file:ec475c2abb2d46435286b5ae5efacf5b50b1a9e3b6293b69db3c0172b5b9658b in / "
---
> "created": "2021-01-28T23:19:38.05371373Z",
> "created_by": "/bin/sh -c #(nop) ADD file:0e2d487cd80773e947c8aae6daad3d565b7bb019a954af2b8bff188681c00d81 in / "
78c78
< "created": "2020-12-17T00:19:42.11518025Z",
---
> "created": "2021-01-28T23:19:38.219326874Z",
83c83
< "created": "2020-12-17T04:09:02.505109201Z",
---
> "created": "2021-02-09T16:42:04.577428896Z",
87c87
< "created": "2020-12-17T04:09:03.167154554Z",
---
> "created": "2021-02-09T16:42:05.166693267Z",
92,93c92,93
< "created": "2021-01-12T16:42:43.282922491Z",
< "created_by": "/bin/sh -c #(nop) ENV DOTNET_VERSION=5.0.2",
---
> "created": "2021-02-09T16:42:06.304822991Z",
> "created_by": "/bin/sh -c #(nop) ENV DOTNET_VERSION=5.0.3",
97,98c97,98
< "created": "2021-01-12T16:42:49.138473702Z",
< "created_by": "/bin/sh -c wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$DOTNET_VERSION/dotnet-runtime-$DOTNET_VERSION-linux-musl-x64.tar.gz && dotnet_sha512='84e69846188689cf5ee1eddce77c6cf92a7becddac9cdd9b985a490446d5acbd5d59e3703e8da4241895c1907b85bac852735c756098774e3b890c1944cda64f' && echo \"$dotnet_sha512 dotnet.tar.gz\" | sha512sum -c - && mkdir -p /usr/share/dotnet && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet && rm dotnet.tar.gz"
---
> "created": "2021-02-09T16:42:12.258801548Z",
> "created_by": "/bin/sh -c wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$DOTNET_VERSION/dotnet-runtime-$DOTNET_VERSION-linux-musl-x64.tar.gz && dotnet_sha512='85e4063792fb9d921a24f9da221a2b69c1faa253adb10644cc5907c35af92b3204f461fd6a9ec936ae37cfada47937f1c2b67174eabc778bd7305d66dc67e340' && echo \"$dotnet_sha512 dotnet.tar.gz\" | sha512sum -c - && mkdir -p /usr/share/dotnet && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet && rm dotnet.tar.gz"
101,102c101,102
< "created": "2021-01-12T16:42:57.556242701Z",
< "created_by": "/bin/sh -c #(nop) ENV ASPNET_VERSION=5.0.2",
---
> "created": "2021-02-09T16:42:13.622748879Z",
> "created_by": "/bin/sh -c #(nop) ENV ASPNET_VERSION=5.0.3",
106,107c106,107
< "created": "2021-01-12T16:43:05.271527706Z",
< "created_by": "/bin/sh -c wget -O aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_VERSION/aspnetcore-runtime-$ASPNET_VERSION-linux-musl-x64.tar.gz && aspnetcore_sha512='d9582bee1dc513288d386ee52bdeb9ed4d5d191d6843b68773f7979ea0d0527c35599722d700a33ce9d59752b44666b17ab7bb36da169c180965252a2742174c' && echo \"$aspnetcore_sha512 aspnetcore.tar.gz\" | sha512sum -c - && tar -ozxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App && rm aspnetcore.tar.gz"
---
> "created": "2021-02-09T16:42:19.243994071Z",
> "created_by": "/bin/sh -c wget -O aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_VERSION/aspnetcore-runtime-$ASPNET_VERSION-linux-musl-x64.tar.gz && aspnetcore_sha512='cd4471a542b4883987c067ecf180bd1ccc414f54fc90dd134c59bdba58f8e102366494b4fffb242de57c248d3915f34953de5330a9664b318ae58c1e1c004905' && echo \"$aspnetcore_sha512 aspnetcore.tar.gz\" | sha512sum -c - && tar -ozxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App && rm aspnetcore.tar.gz"
110,111c110,111
< "created": "2021-01-19T15:56:01.297068709Z",
< "created_by": "/bin/sh -c #(nop) ENV ASPNETCORE_URLS= DOTNET_SDK_VERSION=5.0.102 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false DOTNET_USE_POLLING_FILE_WATCHER=true NUGET_XMLDOC_MODE=skip POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.12",
---
> "created": "2021-02-09T16:42:20.520621642Z",
> "created_by": "/bin/sh -c #(nop) ENV ASPNETCORE_URLS= DOTNET_SDK_VERSION=5.0.103 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false DOTNET_USE_POLLING_FILE_WATCHER=true NUGET_XMLDOC_MODE=skip POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.13",
115c115
< "created": "2021-01-19T15:56:04.203044568Z",
---
> "created": "2021-02-09T16:42:23.428632486Z",
119,120c119,120
< "created": "2021-01-19T15:56:17.159176966Z",
< "created_by": "/bin/sh -c wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-linux-musl-x64.tar.gz && dotnet_sha512='91ac9ea608b38402b2424d7754a823fade38261904a0fbb087f982b324aacf322c3500b520507f21b4aaac40eb059d8ef6d1656fd4f161d5afde2950210e86e8' && echo \"$dotnet_sha512 dotnet.tar.gz\" | sha512sum -c - && mkdir -p /usr/share/dotnet && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz ./packs ./sdk ./templates ./LICENSE.txt ./ThirdPartyNotices.txt && rm dotnet.tar.gz && dotnet help"
---
> "created": "2021-02-09T16:42:52.263290284Z",
> "created_by": "/bin/sh -c wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-linux-musl-x64.tar.gz && dotnet_sha512='0bb6fc1aa4b8486b437f28baeda3b810f7c38ef195761a5eb4c5236975efc505dbff7abbdf7549a34278d110c8a7cf283e52f033a404b300e0f96a8ae0fca4a8' && echo \"$dotnet_sha512 dotnet.tar.gz\" | sha512sum -c - && mkdir -p /usr/share/dotnet && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz ./packs ./sdk ./templates ./LICENSE.txt ./ThirdPartyNotices.txt && rm dotnet.tar.gz && dotnet help"
123c123
< "created": "2021-01-19T15:56:26.675520532Z",
---
> "created": "2021-02-09T16:43:03.16349807Z",
131,137c131,137
< "sha256:777b2c648970480f50f5b4d0af8f9a8ea798eea43dbcf40ce4a8c7118736bdcf",
< "sha256:b9dfc8eed8d66f1eae8ffe46be9a26fe047a7f6554e9dbc2df9da211e59b4786",
< "sha256:466982335a8bacfe63b8f75a2e8c6484dfa7f7e92197550643b3c1457fa445b4",
< "sha256:d305fbfc4bd0d9f38662e979dced9831e3b5e4d85442397a8ec0a0e7bcf5458b",
< "sha256:daec5312147c7f6363f59c29b19e1f76a44196b28761fb26c98300b83440faa4",
< "sha256:2c983d8b8cbef7d4c3b01058782fa3854f3b7b6a11b8fbac21bc81ebee5eb0b2",
< "sha256:6786451623727f6eb99279fd19e2905f95374da748ecc6de919c1fb65302de33"
---
> "sha256:1119ff37d4a9531330e3b8487863ee8ae0308337351be9d5f8bb38f80790acd9",
> "sha256:30025ca5e025c51b8d19b665ff66904c28a3450db8c8688aaa7165540ef9ed66",
> "sha256:9b8d02d7ddab2b14dbf83faef08c3d83fcf0f5671aa659064c6d6a57f7dc849d",
> "sha256:82484281586d30bcf848443b34401f83243174bb85b52f776caf8229ef55ea1b",
> "sha256:f0a8675372d0f6ad7a757a7f9d664b11debd158a95944f24ebce0466dd04a47f",
> "sha256:dd12b4a9099d36df1814b9cedd03d50d4ab11a04cc466640744ea18b80702659",
> "sha256:f25ab82a1955417c54919c010a86cc4da7e64ac95fc1d0272d9d887da76ac670"
# Flatten the filesystem and look at files that changed (not using `tar -tvf` because most timestamps have changed):
$ diff <(crane export --platform linux/amd64 mcr.microsoft.com/dotnet/sdk:5.0.102-1-alpine3.12 - | tar -tf - | sort) <(crane export --platform linux/amd64 mcr.microsoft.com/dotnet/sdk:5.0-alpine - | tar -tf - | sort)
(omitted the output because the dotnet version is contained in the path, so basically every file changed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment