Installation de Crystal sur Docker : comment ajouter le référentiel Crystal à Docker dans le Dockerfile
Dockerfile (extrait)
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
RUN apt-get update && apt-get install -y \
propriétés du logiciel - communes \
essentiel pour la construction \
libevent-dev \
libssl-dev \
libxml2-dev \
libyaml-dev \
libgmp-dev \
libreadline-dev \
apt-transport-https \
iputils-ping \
git \N
aptitude \N
nano \N
serveur openssh \
&& apt-key adv -keyserver keys.gnupg.net -recv-keys 09617FD37CC06B54 \
&& add-apt-repository 'deb https://dist.crystal-lang.org/apt crystal main" \N
&& apt-get update \
&& apt-get install -y crystal \
&& rm -rf /var/lib/apt/lists/* ...
&& mkdir /root/.ssh
Le site ENV APT_KEY_DONT_WARN_ON_DANGEROUSE_USAGE est nécessaire pour que apt-key adv ne s'étouffe pas de ne pas être lancé depuis un terminal.
Pour ajouter le référentiel Crystal, la clé doit être installée
W : Erreur GPG : https://dist.crystal-lang.org/apt crystal InRelease : Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 09617FD37CC06B54
E : Le dépôt 'https://dist.crystal-lang.org/apt crystal InRelease' n'est pas signé.
Lorsque vous ajoutez la clé à l'aide d'un Dockerfile, vous pouvez obtenir le message d'erreur suivant :
Exécution : /tmp/apt-key-gpghome.daecBAEPSJ/gpg.1.sh -keyserver keys.gnupg.net -recv-keys 09617FD37CC06B54
gpg : La réception du serveur de clés a échoué : Impossible d'assigner l'adresse demandée
Ceci est dû au fait que gpg n'est pas capable de se lier à une adresse IPv6. Par conséquent, vous devez
Activez la prise en charge d'IPv6 sur votre hôte pour Docker :
modifier / créer /etc/docker/daemon.json
{ "ipv6" : true, "fixed-cidr-v6" : "2001:db8:1::/64" }
Et redémarrez le service Docker :
service docker restart
le fixed-cidr-v6 est PAS facultatif comme https://docs.docker.com/config/daemon/ipv6/ pourrait vous faire croire.
test pour le support IPv6 :
docker run -it alpine ash -c "ip -6 addr show dev eth0 ; ip -6 route show"
s'il ne renvoie rien, alors ipv6 n'est PAS activé.
sample output with IPv6 enabled:
max@morpheus:~/docker$ docker run -it alpine ash -c "ip -6 addr show dev eth0 ; ip -6 route show"
163 : eth0@if164 : mtu 1500 state UP
inet6 2001:db8:1::242:ac11:2/64 scope global flags 02
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link tentative
valid_lft forever preferred_lft forever
2001:db8:1::/64 dev eth0 metric 256
fe80::/64 dev eth0 metric 256
par défaut via 2001:db8:1::1 dev eth0 metric 1024
ff00::/8 dev eth0 metric 256
Échec du démarrage de Docker Application Container Engine.
tail -n 50 /var/log/syslog
Jan 11 21:39:35 morpheus dockerd[697] : time="2019-01-11T21:39:35.770500563+01:00″ level=warning msg="Votre noyau ne supporte pas la limite de mémoire swap".
Jan 11 21:39:35 morpheus dockerd[697] : time="2019-01-11T21:39:35.770617796+01:00″ level=warning msg="Votre noyau ne prend pas en charge la période cgroup rt".
Jan 11 21:39:35 morpheus dockerd[697] : time="2019-01-11T21:39:35.770656361+01:00″ level=warning msg="Votre noyau ne prend pas en charge l'exécution de cgroup rt".
Jan 11 21:39:40 morpheus dockerd[697] : time="2019-01-11T21:39:40.800355314+01:00″ level=info msg="Le pont par défaut (docker0) est attribué avec une adresse IP 172.17.0.0/16. L'option -bip du démon peut être utilisée pour définir une adresse IP préférée"
Jan 11 21:39:40 morpheus dockerd [697] : Error starting daemon : Erreur d'initialisation du contrôleur réseau : Erreur lors de la création du réseau "bridge" par défaut : Impossible de trouver un pool d'adresses IPv6 disponible et non chevauchant parmi les valeurs par défaut à attribuer au réseau.
Si le démon docker ne démarre pas, consultez le fichier /var/log/syslog pour en trouver la raison.
Ici, cela signifie probablement que vous n'avez pas ajouté le fixed-cidr-v6 comme je l'ai indiqué ci-dessus ! Docker, depuis quelques versions, semble l'exiger. Il y a un problème dans GitHub à ce sujet.
et tout ça pour ...
Références
https://github.com/inversepath/usbarmory-debian-base_image/issues/9
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/ipv6/