2016-06-04 14 views
5

Sto creando un'immagine da un'altra immagine che imposta un punto di accesso specifico. Comunque voglio che la mia immagine ne abbia una predefinita. Come posso resettare ENTRYPOINT?Punto di accesso predefinito Dockypoint

ho provato la seguente Dockerfile:

FROM some-image 
ENTRYPOINT ["/bin/sh", "-c"] 

Purtroppo non funziona come l'entrypoint di default in quanto è necessario il comando di essere citato.

docker run myimage ls -l/ # "-l /" arguments are ignored 
file1 file2 file3    # files in current working directory 

docker run myimage "ls -l /" # works correctly 

Come utilizzare i comandi senza citare?

+0

Vedere la guida per reimpostare l'operazione di destinazione '$ docker --help | grep entrypoint' mostra '--entrypoint Sovrascrive il ENTRYPOINT predefinito dell'immagine' – user2915097

+0

Ho bisogno di farlo nel Dockerfile –

risposta

18

Per disabilitare uno esistente ENTRYPOINT, impostare una matrice vuota nel file di finestra mobile

ENTRYPOINT [] 

Poi le sue argomentazioni a docker run saranno exec come normale.

La ragione tuoi ENTRYPOINT ["/bin/sh", "-c"] stringhe richiede citati è che senza le virgolette, gli argomenti a ls vengono passati al sh invece.

risultati quotati in un sacco di argomenti inviati a sh

"/bin/sh", "-c", "ls", "-l", "/" 

Citando permette il comando completo (sh -c) da trasmettere per sh come un argomento.

"/bin/sh", "-c", "ls -l /" 
Problemi correlati