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.

¿Fue útil?

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.

manual de apt-get

Documentos ENV de Docker

Otros consejos

El comando

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top