non in grado di creare un Dockerfile specifico

Sono in grado di build un Dockerfile come

docker build -t deepak/ruby .

Ma per un Dockerfile che non è denominato Dockerfile

 # DOCKER-VERSION 0.4.8 FROM deepak/ruby MAINTAINER Deepak Kannan "[email protected]" RUN ./bin/rails s 

diciamo che si chiama Dockerfile.app cui costruiamo

docker build -t deepak/app Dockerfile.app

allora ho l'errore

 Uploading context 0 bytes Error build: EOF EOF 

docker build -f MyDockerfile.

o con un tag:

docker build t mysuperimage -f MyDockerfile.

L'ultimo parametro per la creazione di docker è il path di creazione, quando si mette . significa che questo è il path in cui troverai il Dockerfile . Quando lo si modifica in Dockerfile.app verrà quindi provato a cercare Dockerfile.app/Dockerfile , che non è corretto.

Non sono sicuro se funziona ancora, ma sei stato in grado di farlo.

 $ docker build -t deepak/app - < Dockerfile.app 

Prova questo e guarda se aiuta, se no, forse apre un problema docker per aggiungere questa funzionalità o aggiorna la documentazione su come utilizzare un Dockerfile con un nome diverso.

Maggiori informazioni qui: http://docs.docker.io/en/latest/commandline/command/build/

Questa opera

 docker build doronaviguy/helloworld -f SomeDockerFile . 

Docker build Documentation

Puoi raggiungere questo anche usando il docker-compose.

Nel tuo docker-compose.yml sotto la sezione di build, è ansible specificare la directory in cui memorizzi il tuo dockerfile e il suo nome alternativo come segue:

 build: context: "/path/to/docker/directory" dockerfile: "dockerfile-alternate-name" 

window mobile-composizione

Prova il biglietto da visita . Utilizza la function docker per creare un context tramite stdin. Ho scritto lo script per affrontare esattamente il tuo problema che mi stava affrontando.

Per sostituire un Dockerfile con un altro, fai così:

 dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby - 

E voilà. Dockerfeed sta facendo lo stesso come docker build . Imballi l'origine con il suo Dockerfile, ma consente di sostituire il vecchio Dockerfile con quello desiderato. Nessun file viene creato nel process, nessuna origine viene modificata. L'archivio del catrame generato viene inserito nel docker, che a sua volta lo invia al demone docker.

Aggiornamento: Questa era una risposta valida nei vecchi tempi quando non c'era nessun switch -f disponibile. Con la versione 1.5 della docker questa opzione è stata introdotta. Ora è ansible creare un Dockerfile diverso come questo:

 docker build -f other-Dockerfile .