Eu tenho esse Dockerfile que contém maven e java e preciso instalar algumas ferramentas nele também:
# Use an official Maven image as a parent image
FROM maven:3.8.7-openjdk-18
USER root
# install netcat with requirements for health-check-web-server
RUN apt-get update --allow-releaseinfo-change \
&& DEBIAN_FRONTEND=noninteractive \
&& apt-get install -y wget \
&& apt-get install -y gnupg2 \
&& apt-get install -y net-tools ncat \
&& apt-get clean
quando eu construo a imagem usando o comando docker build -t inegration-test .
:
Eu recebo este erro:
Dockerfile:7
--------------------
6 | # install netcat with requirements for health-check-web-server
7 | >>> RUN apt-get update --allow-releaseinfo-change \
8 | >>> && DEBIAN_FRONTEND=noninteractive \
9 | >>> && apt-get install -y wget \
10 | >>> && apt-get install -y gnupg2 \
11 | >>> && apt-get install -y net-tools ncat \
12 | >>> && apt-get clean
13 |
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get update --allow-releaseinfo-change && DEBIAN_FRONTEND=noninteractive && apt-get install -y wget && apt-get install -y gnupg2 && apt-get install -y net-tools ncat && apt-get clean" did not complete successfully: exit code: 127
O que eu tentei:
Tentei manter o contêiner do docker ativo e ver se tenho algum apt-get
ou dnf
nenhum apk
deles estava disponível neste contêiner:
Atualizar :
Aparentemente é maven:3.8.7-openjdk-18
baseado em algo oraclelinux:8-slim
assim, tentei alterar o Dockerfile para abaixo, mas não adiantou:
# Use an official Maven image as a parent image
FROM maven:3.8.7-openjdk-18
RUN dnf update -y && \
dnf install -y curl iputils && \
dnf clean all
maven:3.8.7-openjdk-18
é aparentemente baseado emoracle-linux:8-slim
(Consulte https://hub.docker.com/layers/library/maven/3.8.7-openjdk-18/images/sha256-1936d70bb3415a0d7e822ed484cdb4974593b195091c145b52ba7775003dc3f0?context=explore )Oracle-linux usa DNF (
microdnf
em sua versão 'slim') como gerenciador de pacotes, não APT. Portanto, você provavelmente pode alterar seus comandos para comandos microdnf.Alternativamente, se você quiser usar uma distribuição baseada em Debian (usando APT), você pode usar
maven:3.8.7-openjdk-18-slim
(veja https://hub.docker.com/layers/library/maven/3.8.7-openjdk-18-slim/images/ sha256-6e08ab80ed557294e30c9555c923e7620a8125b4f207996d961535789088339b?context=explore ) ou uma daseclipse-temurin
compilações baseadas no Ubuntu.Procurei no histórico de imagens da imagem e encontrei lá o uso do comando
/usr/bin/microdfn
para instalar pacotes.Então, tentei o comando
/usr/bin/microdnf install apt-get
e ele fez alguma coisa até o disco ficar cheio.....