2
votes

Erreur de construction de Docker, archive / tar: sockets non pris en charge

Je suis nouveau dans Docker et j'essaie de créer une image. J'ai réussi à faire cela avec la commande de commit Docker, mais lorsque j'essaye de le faire avec Dockerfile, j'obtiens ces erreurs:

FROM debian:shim
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y vim

Le fichier Docker ressemble à ceci:

XXX

J'utilise Ubuntu DeskTop 18.04 Quelqu'un peut-il m'aider?


0 commentaires

3 Réponses :


9
votes

Il semble que votre Dockerfile se trouve probablement dans / home / shim / ?

Lorsque vous effectuez docker build. , docker va tarer le contenu du répertoire courant et l'envoyer au démon docker. Il semble que certains des fichiers de /home/shim/.ServiceHub soient en fait des sockets, donc cette opération échoue.

La meilleure pratique consiste à avoir le Dockerfile dans son propre répertoire isolé pour éviter ce genre de choses.

Je vous suggère également de lire dockerfile_best-practices , en particulier le bit sur RUN & apt-get


0 commentaires

0
votes

Bonjour, je suis également confronté aux mêmes problèmes et j'ai appris à en connaître la raison grâce à cette requête. Mon Dockerfile redémarre MySQL dans une étape et il crée un fichier appelé mysqld.sock qui est une erreur ci-dessus lors de la construction de l'image. Si tel est votre cas, vous pouvez ajouter le fichier .sock dans le dépôt lui-même, puis l'utiliser à partir de là.


0 commentaires

0
votes

Pour cet exemple particulier, vous ne devriez pas avoir Dockerfile dans / home / shim .

Dans le cas général d'un fichier socket ( * .sock ) dans votre projet, vous pouvez ajouter * .sock à votre . dockerignore fichier.


0 commentaires