hub - la instalación docker java7 falla
java 11 docker image (3)
Estoy intentando instalar java7 a través de ppa (RUN add-apt-repository ppa: webupd8team / java -y) en mi imagen de ventana acoplable pero falla con este error:
returned a non-zero code: 127
Las siguientes son formas sugeridas de instalar correctamente pero no funciona. He probado ambas ppas también.
RUN apt-get install python-software-properties -y
RUN add-apt-repository ppa:webupd8team/java -y
#RUN add-apt-repository ppa:eugenesan/java -y
RUN apt-get update
RUN apt-get install oracle-java7-installer -y
Aquí está la salida del registro:
Step 28 : RUN add-apt-repository ppa:webupd8team/java -y
---> Running in b278761a4209
[91m/bin/sh: 1: add-apt-repository: not found
[0m
Entonces ... necesito averiguar dónde / si este comando existe en una biblioteca auxiliar o qué:
add-apt-repository
add-apt-repository parece ser parte de la instalación de python-software-properties. No veo ningún error real en ese paso, excepto por estos mensajes que aparecen en otras áreas de la compilación. Entonces asumo que si puedo resolver este problema, el paso de Python mencionado anteriormente se instalará según sea necesario:
[91mdebconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
[0m[91mdebconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
[0m[91mdpkg-preconfigure: unable to re-open stdin:
Asi que. ¿Cómo configurar un término o diálogo? Pensé que el -y permitió esto
El comando -y
en sus comandos de apt-get install
le dice a apt-get
que "asuma que sí", que no es lo mismo que ejecutar en modo no interactivo.
Está viendo los mensajes "no se puede inicializar frontend: Dialog" porque Debian está ejecutando apt-get
en modo interactivo. Para indicarle que se ejecute en modo no interactivo, agregue esta línea al inicio de su Dockerfile:
ENV DEBIAN_FRONTEND noninteractive
Ahora sus comandos se ejecutarán en modo no interactivo, por lo que apt-get
no intentará abrir ningún cuadro de diálogo.
En cuanto a su error real, tiene razón, add-apt-respository
es una parte de las python-software-properties
. Intente colocar su comando apt-get update -y
sobre su comando apt-get install python-software-properties
.
RUN apt-get update -y && /
apt-get install python-software-properties -y && /
add-apt-repository ppa:webupd8team/java -y && /
apt-get update -y && /
apt-get install oracle-java7-installer -y && /
oracle-java7-set-default
Tenga en cuenta que deberá ejecutar dos comandos apt-get update -y
, uno antes de comenzar (siempre es un buen hábito) y otro después de haber agregado el PPA de Oracle Java.
Intenté algunas cosas diferentes en vano, así que opté por OpenJDK. Esto me hizo pasar este paso y al siguiente error :-).
# method 2
RUN apt-get install openjdk-7-jre -y
add-apt-repository
comando add-apt-repository
es una parte del software-properties-common pakage. Instale software-properties-common, no python-software-properties.
Luego puede agregar el repositorio ppa: webupd8team. Pero todavía hay un problema.
Configure la licencia aceptada-oracle-v1-1 e instale java. A continuación la muestra Dockerfile funcionará perfectamente.
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install software-properties-common -y
RUN add-apt-repository ppa:webupd8team/java -y
RUN apt-get update
RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
RUN apt-get install oracle-java7-installer -y