Domanda

Sto cercando di installare Java7 tramite PPA (Esegui Add-apt-repository PPA: WebUpd8Team / Java -Y) nella mia immagine Docker ma non riesce con questo errore:

returned a non-zero code: 127
.

I seguenti sono suggeriti modi per installare correttamente ma non funziona.Ho provato entrambi i PPA.

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
.

Ecco l'output 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 
.

Allora ... Devo scoprire dove / se questo comando esiste in un herper lib or what:

add-apt-repository
.

Add-apt-repository sembra essere parte della installazione delle proprietà del software Python.Non vedo errori reali in quella fase tranne che per questi messaggi che vengono visualizzati in altre aree della build.Quindi i assumere che se riesco a risolvere questo problema il suddetto passaggio Python verrà installato secondo quanto necessario:

    [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: 
.

così.Come impostare un termine o una finestra di dialogo?Ho pensato che il -y ha permesso questo

È stato utile?

Soluzione

Il -y nei tuoi comandi apt-get install è dire a apt-get a "assumere sì", che non è la stessa che è in esecuzione in modalità non interattiva.

Stai vedendo i messaggi "Impossibile inizializzare Frontend: Dialog" perché Debian è in esecuzione apt-get in modalità interattiva. Per dirlo a correre in modalità non interattiva, aggiungere questa linea all'inizio del tuo Dockerfile:

ENV DEBIAN_FRONTEND noninteractive
.

Ora i tuoi comandi verranno in esecuzione in modalità non interattiva, quindi apt-get non verrà tentato di far coprire alcuna finestra di dialogo.

Per quanto riguarda il tuo errore effettivo, hai ragione, add-apt-respository fa parte del python-software-properties. Prova a mettere il tuo comando apt-get update -y sopra il tuo 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
.

Nota, dovrai fare due comandi apt-get update -y, uno prima di iniziare (sempre una buona abitudine entrare) e una dopo aver aggiunto l'Oracle Java PPA.

APT-Ottieni manuale

Docker env docs

Altri suggerimenti

Il comando add-apt-repository è parte del pakage comune delle proprietà del software.Installare le proprietà software-Comune, non Python-Software-Proprietà-

Quindi è possibile aggiungere PPA: il repository WebUpd8Team.Ma c'è ancora un problema.

Imposta l'accettata-Oracle-License-V1-1 e installa Java.Sotto Dockerfile del campione funzionerà perfettamente.

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
.

Ho provato alcune cose diverse a non avvalersi, quindi andai invece con OpenJDK.Questo mi ha portato su questo passo e al prossimo errore: -).

# method 2
RUN apt-get install openjdk-7-jre -y
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top