O servidor de compilação é o Ubuntu 16.04, corrigido recentemente com sudo apt update && sudo apt upgrade
.
docker version
diz:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:11:02 2018
OS/Arch: linux/amd64
Experimental: false
O Dockerfile se parece com isso:
FROM debian:12-slim
RUN apt-get update \
&& apt-get install -y wget \
&& apt-get install -y supervisor \
&& apt-get install -y apt-utils \
&& apt-get install -y nginx \
&& apt-get install -y libgdiplus
RUN apt-get autoremove -y \
&& apt-get clean -y \
&& apt-get autoclean -y \
&& rm -rf /var/lib/apt/lists/*
# .. other stuff cut ..
A apt-get update
etapa falha com:
W: GPG error: http://deb.debian.org/debian bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY F8D2585B8783D481
E: The repository 'http://deb.debian.org/debian bookworm InRelease' is not signed.
W: GPG error: http://deb.debian.org/debian bookworm-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131
E: The repository 'http://deb.debian.org/debian bookworm-updates InRelease' is not signed.
W: GPG error: http://deb.debian.org/debian-security bookworm-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 54404762BBB6E853 NO_PUBKEY BDE6D2B9216EC7A8
E: The repository 'http://deb.debian.org/debian-security bookworm-security InRelease' is not signed.
Presumivelmente, preciso fazer RUN
algo primeiro para atualizar as chaves públicas.
Posso encontrar muitos guias para resolver isso manualmente copiando e colando as chaves ausentes na linha de comando, mas obviamente preciso que a correção faça parte do Dockerfile (e, de preferência, não caia se as chaves forem alteradas, se possível? ).
Mas talvez o fato de apt-get
não estar funcionando para uma imagem de base oficial indique um problema mais profundo?
Estou usando a tag correta para uma imagem mínima do Debian Docker?
O problema está relacionado ao uso da distribuição slim do Debian?
Isso pode ser um problema com o ambiente de compilação ou com a versão antiga do Docker?
Alguma ideia?
(Antecedentes: a intenção é criar uma imagem de tempo de execução .Net Core 2.1 para um aplicativo herdado, mas a imagem de tempo de execução oficial da Microsoft não é mais suportada e recentemente desenvolveu seus próprios problemas nos quais falha com muitos erros 404. A escolha do Debian apt-get
slim aqui é porque essa imagem foi baseada em uma versão mais antiga da mesma.)
Edit: Os comentários pareciam sugerir que provavelmente era o ambiente que era o problema; Ao construir o mesmo Dockerfile no Ubuntu 22.04.2 com o Docker 24.0.4, tudo estava bem. Pergunta respondida como: Não use um servidor de compilação desatualizado!
A causa principal é que desatualizado
libseccomp
bloqueia novas chamadas de sistema do Linux usadas pelo Debian Bookworm. Existem três abordagens:libseccomp
debian:11-slim
--security-opt seccomp=unconfined
(abordagem obviamente insegura)