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...

imagem

Referências

https://github.com/inversepath/usbarmory-debian-base_image/issues/9

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/ipv6/

https://github.com/moby/moby/issues/36954