Cet article concerne la boîte à outils Docker. ** Non applicable à Docker pour Windows **
Lorsque j'ai essayé de créer un serveur de test sur docker pour le développement d'applications Web, cela a échoué.
Step 10/11 : RUN cd app && yarn install
---> Running in d36ecd97329b
yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz: getaddrinfo EAI_AGAIN registry.yarnpkg.com".
Ci-dessous le fichier en question
Dcokerfile
FROM node:12.16-slim
ENV APP_DIR=/app
WORKDIR ${APP_DIR}
RUN mkdir -p ${APP_DIR}
COPY . ${APP_DIR}
ENV LANG=C.UTF-8
ENV TZ=Asia/Tokyo
ENV NODE_ENV=development
ENV HOST 0.0.0.0
RUN cd app && yarn install
EXPOSE 3000
Hyper-V n'est pas disponible sur Windows 10 Famille ** Installé via Docker Toolbox **
Il est facile de voir que le nom de registry.yarnpkg.com
ne peut pas être résolu. Mais pourquoi? Vous pouvez généralement nslookup
à partir de la ligne de commande, non? Il semble y avoir un problème avec le DNS du côté de VirtualBox. Il est pris en sandwich entre le système d'exploitation et le conteneur pour préparer le noyau Linux, et il est étonnamment facile d'ignorer le problème. Lorsque vous le frappez sur VirtualBox,
dcoker@default:~$ nslookup registry.yarnpkg.com
Server: 10.0.2.3
Address 1: 10.0.2.3
nslookup: can't resolve 'registry.yarnpkg.com'
Ajoutez rapidement "8.8.8.8" au secondaire du serveur DNS.
dcoker@default:~$ sudo -i
root@default:~# vi /etc/resolv.conf
Paramètres DNS [resolv.conf] Désactiver l'écrasement après le redémarrage
/etc/resolv.conf
nameserver 10.0.2.3
+ nameserver 8.8.8.8
«8.8.8.8» est l'adresse de Google Public DNS, qui est un allié fiable lorsque vous avez des problèmes avec DNS.
En raison de la différence dans la disposition du clavier, je ne peux pas taper deux points :
et je ne peux pas quitter vi
! Si vous êtes un tel utilisateur de tableau JIS, appuyez sur `` '+' (Shift + ';') `.
Notez qu'il s'agit d'une mesure d'urgence et ne sera pas une solution permanente, comme le redémarrage de VirtualBox.