redhat-buildpacks / poc

Project to be used to perform go build of images using Buildah, ...
3 stars 6 forks source link

Enhancement: Find from tgz files created the ones to be extracted #5

Closed cmoulliard closed 2 years ago

cmoulliard commented 2 years ago

Enhancement

Find from the snpashot tgz files created by kaniko the ones to be extracted

Example of Dockerfile parsed

FROM alpine

COPY ./hello.txt /workspace

RUN apk add wget curl

and what kaniko-app will log as information:

File Name: /kaniko/config.json              
INFO[0011] 
Data: {"architecture":"amd64","container":"b459276b6e0fe01b58020c8700475a6fa846e1f915e23573d5588ab96673fc20","created":"2021-11-18T14:46:33.025336583Z","docker_version":"20.10.7","history":[{"created":"2021-11-12T17:19:44.795237917Z","created_by":"/bin/sh -c #(nop) ADD file:762c899ec0505d1a32930ee804c5b008825f41611161be104076cba33b7e5b2b in / "},{"created":"2021-11-12T17:19:45.079013213Z","created_by":"/bin/sh -c #(nop)  CMD [\"/bin/sh\"]","empty_layer":true},{"author":"kaniko","created":"0001-01-01T00:00:00Z","created_by":"COPY ./hello.txt /workspace"},{"author":"kaniko","created":"0001-01-01T00:00:00Z","created_by":"RUN apk add wget curl"}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:1a058d5342cc722ad5439cacae4b2b4eedde51d8fe8800fcf28444302355c16d","sha256:23465ce4814c0f6ef20b0c3ece7a61d0fbf2075e8cb739884a5f02874c40f8e4","sha256:a55fe4b365a068d8ef3cd1e403841e30acfd642511f15e75256a7a5885009e27"]},"config":{"Cmd":["/bin/sh"],"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Image":"sha256:ba31c26876f2e444fc30cbe8b50673f3595f34cc4a51f327f265bed3cd281d89"}} 
INFO[0011] Generated 3 layers                           
INFO[0011] Tar layer file: /kaniko/sha256:97518928ae5f3d52d4164b314a7e73654eb686ecd8aafa0b79acd980773a740d.tgz 
INFO[0015] Tar layer file: /kaniko/sha256:48ecc1a4998716f3b3d3dc5f72e283fa9053bf8cc9b59fc9073b544f97464044.tgz 
INFO[0015] Tar layer file: /kaniko/sha256:46e1c2a0cf2e22ef22bc3a36602e110a62477f7aad772b0d96fe6e6d782fee44.tgz 

The 2 layers which are interesting corresponds to the 2 last files logged:

tar -tvf sha256:46e1c2a0cf2e22ef22bc3a36602e110a62477f7aad772b0d96fe6e6d782fee44.tgz | grep "wget\|curl"
-rw-r--r--  0 0      0        4945 Jan 12  2021 etc/wgetrc
-rwxr-xr-x  0 0      0      239568 Sep 22 20:50 usr/bin/curl
-rwxr-xr-x  0 0      0      465912 Jan 12  2021 usr/bin/wget
lrwxrwxrwx  0 0      0           0 Nov 18 15:46 usr/lib/libcurl.so.4 -> libcurl.so.4.7.0
-rwxr-xr-x  0 0      0      492928 Sep 22 20:50 usr/lib/libcurl.so.4.7.0

tar -tvf sha256:48ecc1a4998716f3b3d3dc5f72e283fa9053bf8cc9b59fc9073b544f97464044.tgz
drwxr-xr-x  0 0      0           0 Nov 18 15:46 /
drwxr-xr-x  0 0      0           0 Nov 18 15:39 workspace/
-rw-r--r--  0 0      0          18 Nov 18 15:02 workspace/hello.txt