Instalar o Crystal on Docker: como adicionar o repositório Crystal ao Docker no Dockerfile
Dockerfile (excerto)
ENV APT_KEY_DONT_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
EXECUTAR apt-get update && apt-get install -y
PROPRIEDADES-Comuns
essencial para a construção
evento de libertação
libssl-dev {\i1}
libxml2-dev \\
libyaml-dev {\i}
libgmp-dev \\
libreadline-dev {\i1}
apt-transport-https \\i1
iputils-ping
imbecil
aptidão
nano
openssh-server \\i1
&& apt-key adv -keyserver keys.gnupg.net -recv-keys 09617FD37CC06B54 \
&& add-apt-repositório 'deb https://dist.crystal-lang.org/apt cristal principal''.
&& apt-get update \\
&& apt-get install -y crystal \\
&& rm -rf /var/lib/apt/lists/* \
&& mkdir /root/.ssh
O ENV APT_KEY_DONT_WARN_ON_DANGEROUSE_USAGE é necessário para não se asfixiar por não ser executado a partir de um terminal.
Para adicionar o repositório Crystal, a chave precisa ser instalada
T: Erro GPG: https://dist.crystal-lang.org/apt InRelease de cristal: As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 09617FD37CC06B54
E: O repositório 'https://dist.crystal-lang.org/apt InRelease de cristal" não está assinado.
Quando você adiciona a chave usando um Dockerfile, você pode receber a seguinte mensagem de erro:
Executando: /tmp/apt-key-gpghome.daecBAEPSJ/gpg.1.sh -keyserver keys.gnupg.net -recv-keys 09617FD37CC06B54
gpg: o servidor de chaves recebe falha: Não é possível atribuir o endereço solicitado
Isto é devido a gpg não ser capaz de se ligar a um endereço IPv6. Portanto, você tem que
habilite o suporte a IPv6 no seu host para Docker:
editar / criar /etc/docker/daemon.json
{ "ipv6": verdade, "fixed-cidr-v6": "2001:db8:1::/64" }
E reinicie o serviço portuário:
reinício da doca de serviço
o cidr-v6 fixo é NÃO opcional como https://docs.docker.com/config/daemon/ipv6/ pode levar-te a acreditar.
teste para suporte a IPv6:
docker run -it alpine ash -c "ip -6 addr show dev eth0; ip -6 route show"
se não devolver nada, então o ipv6 NÃO está activado
código>amostra de saída com IPv6 activado:
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 escopo global bandeiras 02
valid_lft forever preferido_lft forever
inet6 fe80::42:acff:fe11:2/64 escopo link tentativo
valid_lft forever preferido_lft forever
2001:db8:1::/64 dev eth0 metric 256
fe80::/64 dev eth0 métrica 256
default via 2001:db8:1::1 dev eth0 metric 1024
ff00::/8 dev eth0 metric 256
Falha no arranque do motor do Docker Application Container.
cauda -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="Seu kernel não suporta limite de memória swap".
Jan 11 21:39:35 morpheus dockerd[697]: time="2019-01-11T21:39:35.770617796+01:00″ level=warning msg="Your kernel does not support cgroup rt period" (Seu kernel não suporta o período rt do cgroup)
Jan 11 21:39:35 morpheus dockerd[697]: time="2019-01-11T21:39:35.770656361+01:00″ level=warning msg="Your kernel does not support cgroup rt runtime"
Jan 11 21:39:40 morpheus dockerd[697]: time="2019-01-11T21:39:40.800355314+01:00″ level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. A opção -bip daemon pode ser usada para definir um endereço IP preferido".
Jan 11 21:39:40 morpheus dockerd[697]: Erro a iniciar daemon: Erro inicializando o controlador de rede: Erro ao criar uma rede "bridge" padrão: não foi possível encontrar um pool de endereços IPv6 disponível e não sobreposto entre os padrões para atribuir à rede.
Se o daemon da doca não começar, olhe para /var/log/syslog para encontrar o motivo.
Aqui provavelmente significa que você não adicionou o Cidr-v6 fixo como eu indiquei acima! O Docker, desde algumas versões, parece exigir isto. Há um problema no GitHub sobre isso.
e tudo isto para...
Referências
https://github.com/inversepath/usbarmory-debian-base_image/issues/9
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/ipv6/