Utiliser le lien symbolique avec la construction en plusieurs étapes de Docker

Afin de réduire la taille de Docker, des constructions en plusieurs étapes sont souvent utilisées, dans lesquelles le générateur et l'image réellement utilisées sont écrits en étapes distinctes. Lors de l'utilisation de cette version en plusieurs étapes, vous souhaiterez peut-être installer la bibliothèque avec le générateur et ajouter la bibliothèque à l'image réelle avec ADD ou COPY.

La bibliothèque contient souvent un lien symbolique, mais les commandes ADD et COPY de Docker ne peuvent pas ajouter de lien symbolique.

Ce problème peut être résolu étonnamment facilement en tarant le lien symbolique requis dans le générateur et en développant le fichier tar à l'étape suivante.

Examinons de plus près l'exemple actuel de Dockerfile.

Exemple et description de Dockerfile


FROM debian:latest as builder
RUN tar czf testlib.tar.gz /usr/local/lib/test.so.* \  
            /usr/local/lib/test1.so.* \
            /usr/local/lib/test2.so.* #Tarer le lien symbolique requis

FROM debian:latest
COPY --from=builder /testlib.tar.gz /testlib.tar.gz  #Copiez le fichier tar renforcé
RUN cd / && tar xzf testlib.tar.gz #Déployer le lien symbolique solidifié

Cela semble être un rêve que j'ai eu du mal à essayer d'ajouter un lien symbolique avec AJOUTER ou COPIER jusqu'à ce que je sache comment faire cela.

référence

Recommended Posts

Utiliser le lien symbolique avec la construction en plusieurs étapes de Docker
Utiliser Puphpeteer avec Docker
Utiliser GDAL avec Python avec Docker
[Docker] À utiliser à tout moment avec Docker + Rails
Utilisation de cuda11.0 avec pytorch en utilisant Docker
Utiliser Amazon ECR Credential Helper avec Docker Desktop
Utiliser ProGuard avec Gradle
Lancez MariaDB avec Docker
Exploser Docker avec WSL2
Utilisez XVim2 avec Xcode 12.0.1
Utilisation de CentOS avec LXD
Exploitez Emby avec Docker
Exécutez Payara avec Docker
Utiliser Webmock avec Rspec
Utiliser les WebJars avec Gradle
Utilisez jlink avec gradle
PHP jetable avec Docker
[PHP8] Installer et utiliser la fonction YAML de PECL (analyseur YAML) avec Docker
Utiliser le shell intégré de docker avec cygwin [docker exec -it bash]
Vous devez utiliser winpty avec docker exec [Windows]