2015-01-22 17 views
13

Quindi l'intenzione principale era quella di rendere ancorata una fat jar application e metterla in Elasticbeanstalk. Il problema è con il contesto. È un po 'stupido aggiungere così tanto contesto alla finestra mobile se tutto ciò di cui ho bisogno è in realtà un singolo file jar.Dockerignore: ignora tutto tranne un file e il Dockerfile

Ho giocato con il file .dockerignore, ma sono perso. Ho provato a usare la negazione gitignore, ma non funziona.

* 
!Dockerfile 
*/ 
!target/ 
target/* 
!target/*.jar 

C'è anche quella cosa con regex, ma sembra complicato regex non è supportato.

^((?!Dockerfile).)*$ 

Ho anche provato a cercare in StackOverflow, e questi due sono tutto quello che ho trovato:

Questa domanda potrebbe essere simile a il secondo, ma penso che sia leggermente diversa da allora qui, voglio solo includere un singolo file nel contesto.

Qualsiasi aiuto sarà apprezzato.

risposta

4

Questo può sembrare strano, ma se tutto ciò di cui hai bisogno è un singolo file jar, puoi creare una cartella "docker" nel tuo sistema di build che contiene il tuo Dockerfile. Quando si eseguono le build, gli script di compilazione copiano il singolo file jar in "finestra mobile", quindi eseguono la creazione dell'immagine della finestra mobile (dall'interno della cartella "finestra mobile") e al registro di docker al termine.

+1

Ciao, non suona affatto strano. Ho pensato che fosse una pratica generale, ma stavo cercando un modo per farlo con il .dockerignore se possibile. Inoltre, non mi piace molto mvn xml :) – Rowanto

13

Dal dockerfile reference:

Al di là di regole filepath.Match di Go, Docker supporta anche una stringa di caratteri jolly speciale ** che corrisponde a qualsiasi numero di directory (compreso lo zero). Ad esempio, **/*. Go escluderà tutti i file che terminano con .go che si trovano in tutte le directory, inclusa la radice del contesto di compilazione.

Quindi una riga contenente semplicemente ** ignorerà tutto nella stessa directory del file Docker.

Come previsto, l'esclamazione può quindi essere utilizzata per fare riferimento a qualsiasi file che si desidera inviare al daemon docker.

Problemi correlati