Non sono sicuro di come nominare Dockerfiles. Molti su GitHub usano Dockerfile
senza un'estensione di file. Dò loro un nome e un'estensione? e allora? O li chiamo e basta Dockerfile
?
Non sono sicuro di come nominare Dockerfiles. Molti su GitHub usano Dockerfile
senza un'estensione di file. Dò loro un nome e un'estensione? e allora? O li chiamo e basta Dockerfile
?
Risposte:
Non modificare il nome del file docker se si desidera utilizzare l'autobuilder su hub.docker.com. Non utilizzare un'estensione per i file docker, lasciala nulla. Il nome file dovrebbe essere solo: (nessuna estensione)
Dockerfile
tuttavia, puoi fare anche come di seguito ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
Etc.
Su VS Code puoi usare <purpose>.Dockerfile
e funziona di conseguenza.
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
Etc.
Con VS Code lo uso <purpose>.Dockerfile
e viene riconosciuto correttamente.
Penso che dovresti avere una directory per container con un Dockerfile (senza estensione) al suo interno. Per esempio:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Quando costruisci basta usare il nome della directory, Docker troverà il Dockerfile. per esempio:
docker build -f ./db .
Se si desidera utilizzare l'autobuilder su hub.docker.com, deve esserlo Dockerfile
. Quindi lì :)
Sembra che sia vero ma, personalmente, mi sembra un design scadente. Certo, avere un nome predefinito (con estensione) ma consentire altri nomi e avere un modo per specificare il nome del file docker per i comandi.
Avere un'estensione è anche bello perché consente di associare le applicazioni a quel tipo di estensione. Quando faccio clic su un file Docker in MacOSX, lo tratta come un eseguibile Unix e tenta di eseguirlo.
Se i file Docker avessero un'estensione, potrei dire al sistema operativo di avviarli con una particolare applicazione, ad esempio la mia applicazione per l'editor di testo. Non sono sicuro, ma l'attuale comportamento potrebbe anche essere correlato alle autorizzazioni dei file.
Ho creato due file Docker nella stessa directory,
# vi one.Dockerfile
# vi two.Dockerfile
per compilare entrambi i Dockerfile,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Nota: dovresti essere nella directory di lavoro corrente.
Dò loro un nome e un'estensione? e allora?
Puoi nominare i tuoi Dockerfile come preferisci. Il nome file predefinito è Dockerfile
(senza estensione) e l'utilizzo del valore predefinito può semplificare varie attività mentre si lavora con i contenitori.
A seconda delle tue esigenze specifiche potresti voler cambiare il nome del file. Se stai costruendo per più architetture, ad esempio, potresti voler aggiungere un'estensione che indica l'architettura come il team resin.io ha fatto per il contenitore HAProxy il loro esempio ARM multi-contenitore :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
Nell'esempio fornito, ogni Dockerfile viene creato da un'immagine upstream diversa, specifica dell'architettura. Il Dockerfile specifico da utilizzare per la compilazione può essere specificato utilizzando l' --file, -f
opzione quando si crea il contenitore utilizzando la riga di comando.
Dockerfile
va bene se hai solo un file docker (per directory). Puoi utilizzare qualsiasi standard tu desideri se hai bisogno di più file docker nella stessa directory, se hai una buona ragione. In un recente progetto c'erano file docker AWS e file di ambiente di sviluppo locale perché gli ambienti differivano abbastanza:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
accanto a Dockerfile.i386
.