Outils pour utilisateurs

Outils du site


sysadmin:docker:dockerfile:commande_copy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

sysadmin:docker:dockerfile:commande_copy [2022/11/25 18:49] – créée yoannsysadmin:docker:dockerfile:commande_copy [2022/11/27 14:37] (Version actuelle) yoann
Ligne 1: Ligne 1:
 {{tag>sysadmin dev docker dockerfile commande}} {{tag>sysadmin dev docker dockerfile commande}}
  
-:TODO: :TODO_DOCUPDATE: 
  
 ====== Dockerfile : La commande COPY ====== ====== Dockerfile : La commande COPY ======
Ligne 11: Ligne 10:
 </file> </file>
  
-L'option **%%--chown%%** permet de modifier directement le propriétaire sans appel d'une deuxième commande+===== Options ===== 
 + 
 +L'option **%%--chown%%** permet de modifier directement le propriétaire sans appeler une deuxième commande qui introduit un layer supplémentaire dans l'image:
  
 <file> <file>
Ligne 17: Ligne 18:
 </file> </file>
  
-Pour utiliser l'option **%%--chmod%%** attention de bien activer le BUIDKIT nécessaire: 
  
-<file+L'option **%%--chmod%%** existe également mais il est nécessaire d'activer le **BuildKit** pour pouvoir l'utiliser sans générer d'erreur à la construction de l'image: 
-DOCKER_BUILDKIT=1 docker build ./+ 
 +<code bash
 +DOCKER_BUILDKIT=1 docker image build -t image/label:version . 
 +</code> 
 + 
 +<note> 
 +Pour éviter de spécifier la variable à chaque commande ''docker image build'' on peut l'ajouter au fichier **.env** ou l'exporter dans le shell courant. 
 +</note> 
 + 
 +===== Activer BuildKit par défaut ===== 
 + 
 +Il est possible de modifier la configuration du daemon Docker pour que le BuilKit soit utilisé par défaut par le client docker. Pour cela il faut modifier le fichier ''/etc/docker/daemon.json'':  
 + 
 +<file json daemon.json> 
 +
 +   "data-root": "/srv/docker", 
 +   "features":  
 +   { 
 +      "buildkit" : true 
 +   } 
 +
 +</file> 
 + 
 +Dans ce cas, il est inutile d'exporter la variable **DOCKER_BUILDKIT**. 
 + 
 + 
 +===== Utiliser le BuildKit avec docker-compose ===== 
 + 
 +docker-compose doit être paramétré pour utiliser le client docker pour la construction des images. Pour cela on exporte la variable **COMPOSE_DOCKER_CLI_BUILD** ou on l'ajoute dans le fichier **.env**: 
 + 
 + 
 +<note> 
 +Le buildkit est supporté par docker-compose à partir de la version 1.25.0. 
 + 
 +Pour pouvoir l'utiliser, les variables d'environnement **COMPOSE_DOCKER_CLI_BUILD=1** et **DOCKER_BUILDKIT=1** doivent être définies. 
 +</note> 
 + 
 +Ici on les ajoute dans le fichier **.env**: 
 + 
 +<file TXT .env> 
 +COMPOSE_DOCKER_CLI_BUILD=1 
 +DOCKER_BUILDKIT=1
 </file> </file>
  
 +La commande docker-compose build peut ensuite être utilisée normalement et ne générera plus d'erreur:
 +<code bash>
 +docker-compose build
 +</code>
  
 ===== Références ===== ===== Références =====
  
   * https://stackoverflow.com/questions/67910547/why-docker-copy-doesnt-change-file-permissions-chmod   * https://stackoverflow.com/questions/67910547/why-docker-copy-doesnt-change-file-permissions-chmod
 +  * https://docs.docker.com/build/buildkit/#getting-started
 +  * https://stackoverflow.com/questions/58592259/how-do-you-enable-buildkit-with-docker-compose
sysadmin/docker/dockerfile/commande_copy.1669402153.txt.gz · Dernière modification : 2022/11/25 18:49 de yoann