Git Product home page Git Product logo

Comments (6)

danbo avatar danbo commented on May 25, 2024 1

Mine won't compile either, but for a different reason:

...
=> ERROR [builder 130/132] RUN   EXPAT_VERSION=$(pkg-config --modversion expat)   FFTW_VERSION=$(pkg-config --modversion fftw3)   FONTCONFIG_VERSION=$(pkg-config --modversion fontcon  0.0s
...
Dockerfile:936
--------------------
 935 |     
 936 | >>> RUN \
 937 | >>>   EXPAT_VERSION=$(pkg-config --modversion expat) \
...
 1008 |     
--------------------
ERROR: failed to solve: failed to prepare 9xuybf77et3xm8whj83hws1k9 as r40c6z28tug8tevvj5tjkv7ke: max depth exceeded

Found this note about layers. Max layers appears to be 125.. but if you look at the builder log, it shows ERROR [builder 130/132] so it's looking like we are past that though not sure why it would error on 130 instead of 125.

In any case, when I collapsed the RUN echo commands into the the main commands, it reported 94 total layers in the builder, having shaved off 38, allowing the build to complete successfully.

 => [builder 92/94] RUN   EXPAT_VERSION=$(pkg-config --modversion expat)   FFTW_VERSION=$(pkg-config --modversion fftw3)   FONTCONFIG_VERSION=$(pkg-config --modversion fontconfig)      0.4s
 => [builder 93/94] COPY checkelf /                                                                                                                                                      0.1s
 => [builder 94/94] RUN   /checkelf /usr/local/bin/ffmpeg &&   /checkelf /usr/local/bin/ffprobe                                                                                          0.4s
 => [final1 1/9] COPY --from=builder /versions.json /usr/local/bin/ffmpeg /usr/local/bin/ffprobe /                                                                                       1.0s
 => [final1 2/9] COPY --from=builder /usr/local/share/doc/ffmpeg/* /doc/                                                                                                                 0.1s
 => [final1 3/9] COPY --from=builder /etc/ssl/cert.pem /etc/ssl/cert.pem                                                                                                                 0.0s
 => [final1 4/9] RUN ["/ffmpeg", "-version"]                                                                                                                                             0.3s
 => [final1 5/9] RUN ["/ffprobe", "-version"]                                                                                                                                            0.4s
 => [final1 6/9] RUN ["/ffmpeg", "-hide_banner", "-buildconf"]                                                                                                                           0.4s
 => [final1 7/9] RUN ["/ffmpeg", "-f", "lavfi", "-i", "testsrc", "-c:v", "libsvtav1", "-t", "100ms", "-f", "null", "-"]                                                                  0.7s
 => [final1 8/9] RUN ["/ffprobe", "-i", "https://github.com/favicon.ico"]                                                                                                                0.9s
 => [final1 9/9] RUN ["/ffprobe", "-tls_verify", "1", "-ca_file", "/etc/ssl/cert.pem", "-i", "https://github.com/favicon.ico"]                                                           0.9s
 => [final2 1/1] COPY --from=final1 / /                                                                                                                                                  1.2s
 => exporting to image                                                                                                                                                                   0.9s
 => => exporting layers                                                                                                                                                                  0.8s
 => => writing image sha256:8df070da74af2f540c0cc8cfb3ad69b787f5a91df0ffc3f84875e76454e28306
 => => naming to docker.io/library/my-static-ffmpeg-7

We could further collapse the commands, ie not just echo but also wget, in total this should bring the total number of layers down by about 75 in the builder.

Side note / something I'll also be investigating: https://github.com/goldmann/docker-squash

Docker version 26.0.2, build 3c863ff / Ubuntu / AMD64

from static-ffmpeg.

wader avatar wader commented on May 25, 2024 1

Hey, should be fixed by #434 the reason they were split up was to easy debugging when downloading or checksum fails, but i noticed that it's possible to make the sha sum thing more verbose and also exit with error code on failure.

I think this will hopefully save enough layers for new things for some years to come :)

from static-ffmpeg.

wader avatar wader commented on May 25, 2024

Hi, it seems like ld got killed collect2: fatal error: ld terminated with signal 9 [Killed]. Could it be that your running of of memory when linking and the OOM-killer starts killing things? if it's possible you can probably verify it by looking in dmesg on the docker host.

from static-ffmpeg.

wader avatar wader commented on May 25, 2024

About squashing, i do this https://github.com/wader/static-ffmpeg/blob/master/Dockerfile#L1052-L1054 which results in the final image having just one layer, is that same as what docker-squash would do?

from static-ffmpeg.

zoltak avatar zoltak commented on May 25, 2024

Hi, it seems like ld got killed collect2: fatal error: ld terminated with signal 9 [Killed]. Could it be that your running of of memory when linking and the OOM-killer starts killing things? if it's possible you can probably verify it by looking in dmesg on the docker host.

you were spot on. Out of memory

~# dmesg
[66187.115649] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/docker/cf5bd8414eabd23846cc43404f2ad8c6a1c2c4f0e9210ddd28f246366f92e2e6,task=ld,pid=17399,uid=0 [66187.115668] Out of memory: Killed process 17399 (ld) total-vm:1494112kB, anon-rss:1121652kB, file-rss:4kB, shmem-rss:0kB, UID:0 pgtables:2924kB oom_score_adj:0 [66189.442054] oom_reaper: reaped process 17399 (ld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

from static-ffmpeg.

wader avatar wader commented on May 25, 2024

@zoltak 👍 interesting that ld runs out, think i've only seen rust using a lot and get OOM-killed:ed

from static-ffmpeg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.