Man kennt ja aus Docker-Multistage-Builds das COPY --from=build
, um eine Datei aus einer anderen Stage zu kopieren.
Gerade habe ich beim Docker-Image von composer gesehen, dass das nicht nur beschränkt auf Images im selben Multi-stage-Build ist. Man kann dort jedes Image angeben.
Also kann man statt dem hier:
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
&& php -r "unlink('composer-setup.php');" \
&& composer --version
Auch das hier machen und die Binary aus dem offiziellen composer-Image kopieren:
COPY --from=composer /usr/bin/composer /usr/bin/composer
Nachteil dabei ist, dass der Builder dafür das komplette Image runterladen muss. Ist in manchen Situationen vielleicht ganz praktisch.