larsks / dockerize

A tool for creating minimal docker images from dynamic ELF binaries.
GNU General Public License v3.0
355 stars 41 forks source link

Solved runtime dependencies #11

Closed khusseini closed 7 years ago

khusseini commented 8 years ago

Hey there, a while back when I used your tool to try to get PHP standalone, I ran into the problem of resolving runtime dependencies.

Here is my solution to that https://github.com/mozzymoz/packager I'm no python wizard, that is why I didn't make a PR, but could be sometime you might be interested in

Clement-TS commented 7 years ago

Dockerize is not getting PHP/Python/JS apps standalone, its only getting binary apps standalone inside a Docker container. In fact it is resolving the ldd links, adding the libs inside the container, then the executable and extra suff (see /etc).

So in your build chain you would need something like PHP app > PHP packager > Dockerize.

larsks commented 7 years ago

Dockerize was only ever meant to resolve binary dependencies. There are other tools for describing and packaging the dependencies of interpreted languages like php, python, etc.

khusseini commented 7 years ago

This is exactly what I did. I used dockerize to package the PHP binary and wrote a bit extra to resolve for PHP's *.so extension dependencies. Not to package PHP applications

For example Dockerize is used on the php binary to resolve its dependencies, however when running PHP it loads extensions, such as the MySQL extension which provides MySQL bindings to the PHP intepreter. I added some bashfoo to find those extensions and their dependencies.