Error en la instalación de Docker Java7
Pregunta
Estoy intentando instalar java7 a través de ppa (EJECUTAR add-apt-repository ppa:webupd8team/java -y) en mi imagen de la ventana acoplable pero falla con este error:
returned a non-zero code: 127
Las siguientes son formas sugeridas de instalación correcta, pero no funcionan.También probé ambos ppas.
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 estos mensajes que aparecen en otras áreas de la compilación.Asique asumir 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:
Entonces.¿Cómo configurar un término o diálogo?Pensé que permitieron esto.
Solución
El -y
en tus apt-get install
los comandos dicen apt-get
"asumir que sí", que no es lo mismo que ejecutar en modo no interactivo.
Estás viendo el mensaje "no se puede inicializar la interfaz:Mensajes de diálogo" porque Debian se 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 tu error real, tienes razón, add-apt-respository
es parte del python-software-properties
.Intenta poner tu apt-get update -y
Comando por encima de tu apt-get install python-software-properties
dominio.
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 necesitará hacer dos apt-get update -y
comandos, uno antes de comenzar (siempre es un buen hábito) y otro después de haber agregado el PPA de Oracle Java.
Otros consejos
add-apt-repository
es una parte de los pakage común de propiedades del software.Instale software-Propiedades, comunes, no propiedades de Python-Software.
entonces puede agregar PPA: webUpd8Team Repository.Pero todavía hay un problema.
Configure la licencia aceptada-Oracle-License-V1-1 e instale Java.Por debajo de la muestra del archivo Distribuidor de la muestra 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
Intenté algunas cosas diferentes para no aprovechar, así que fui con OpenJDK en su lugar.Esto me hizo pasar por este paso y al siguiente error: -).
# method 2
RUN apt-get install openjdk-7-jre -y