Dockerfile manuel d'installer de multiples fichiers deb
De travail avec Docker et je remarque que presque partout la commande "EXÉCUTER" commence avec un apt-get upgrade && apt-get install etc.
Que faire si vous n'avez pas accès à internet et veulent tout simplement faire un "dpkg -i ./deb-répertoire de/*.deb" à la place?
Bien, j'ai essayé et j'ai garder un échec. Tout conseil serait apprécié:
dpkg: error processing archive ./deb-directory/*.deb (--install):
cannot access archive: No such file or directory
Errors were encountered while processing: ./deb-directory/*.deb
INFO[0002] The command [/bin/sh -c dpkg -i ./deb-directory/*.deb] returned a non-zero code: 1`
À préciser, oui, le répertoire "deb-répertoire" n'existent pas. En fait, c'est dans le même répertoire que le Dockerfile où je construire.
Merci de poster votre Dockerfile, peut-être vous avez besoin de ADD le Fichier deb ?
Ce n'est pas une solution idéale, si j'ai le 85 fichiers deb je veux l'installer, j'ai besoin d'AJOUTER 85 fois?
AJOUTER pouvez également copier un répertoire non seulement les fichiers, de sorte que vous n'avez pas besoin de copier 85 fichiers. Mais de toute façon, il est plus facile si vous publiez votre Dockerfile ou un exemple minimal comme une ubuntu et un fichier deb, donc quelqu'un/nous pouvons reproduire et d'apprendre de vos erreurs.
Le Docker fichier n'est nécessaire pour construire des conteneurs. Connectez la machine de compilation à l'internet et construit les images fonctionnent correctement sans un externel réseau.
il ne veut pas répondre directement à votre question, mais un apt repo permettrait de résoudre tous vos problèmes ici, en supposant que votre colis ont leurs dépendances droit et tout ça.
Ce n'est pas une solution idéale, si j'ai le 85 fichiers deb je veux l'installer, j'ai besoin d'AJOUTER 85 fois?
AJOUTER pouvez également copier un répertoire non seulement les fichiers, de sorte que vous n'avez pas besoin de copier 85 fichiers. Mais de toute façon, il est plus facile si vous publiez votre Dockerfile ou un exemple minimal comme une ubuntu et un fichier deb, donc quelqu'un/nous pouvons reproduire et d'apprendre de vos erreurs.
Le Docker fichier n'est nécessaire pour construire des conteneurs. Connectez la machine de compilation à l'internet et construit les images fonctionnent correctement sans un externel réseau.
il ne veut pas répondre directement à votre question, mais un apt repo permettrait de résoudre tous vos problèmes ici, en supposant que votre colis ont leurs dépendances droit et tout ça.
OriginalL'auteur user3614014 | 2015-02-11
Vous devez vous connecter pour publier un commentaire.
C'est peut-être un bug, je vais ouvrir un ticket sur leur github pour le savoir.
Edit: je l'ai fait ici.
Edit2:
Quelqu'un a répondu à une meilleure façon de faire cela sur le github question.
!!! Oubliez la suite mais je le laisse ici pour suivre l'évolution de ma réflexion étapes !!!
Le problème vient de la
*
déclaration qui ne semble pas bien fonctionner avec ledocker run dpkg
de commande. J'ai essayé votre commande à l'intérieur d'un conteneur (à l'aide d'un shell interactif) et cela a bien fonctionné. Il ressemble àdpkg
est d'essayer d'installer le soi-disant./deb-directory/*.deb
fichier qui n'existe pas au lieu de l'installation de tous les.deb
les fichiers qu'il contient.J'ai juste mis en place une solution de contournement. Copier un
.sh
script dans votre récipient,chmod +x
et ensuite l'utiliser comme votre commande.(Pour info, préférez l'utilisation de
COPY
au lieu deADD
lorsque le fichier n'est pas à distance copié. Vérifier les meilleures pratiques pour la rédaction des Dockerfiles pour plus d'info.)C'est mon Dockerfile à titre d'exemple:
La
install.sh
(copié dans le répertoire racine) contient:Et suivants
fonctionne bien et d'installer tous les paquets contenus dans le
/debdir
répertoire.OriginalL'auteur Vrakfall