L'intention principale était donc d'ancrer une application Fat Jar et de la placer dans Elasticbeanstalk. Le problème vient du contexte. C'est un peu stupide d'ajouter autant de contexte dans le docker si tout ce dont j'ai besoin est en fait un seul fichier jar.
J'ai joué avec le fichier .dockerignore, mais je suis perdu. J'ai essayé d'utiliser la négation gitignore, mais cela ne fonctionne pas.
*
!Dockerfile
*/
!target/
target/*
!target/*.jar
Il y a aussi cette chose avec les regex, mais il semble que les regex compliquées ne soient pas prises en charge.
^((?!Dockerfile).)*$
J'ai également essayé de rechercher dans stackoverflow, et ces deux sont tout ce que j'ai trouvé:
Cette question pourrait être similaire à la deuxième, mais je pense que c'est une légère différence car ici, je veux simplement inclure un seul fichier dans le contexte.
Toute aide serait appréciée.
Réponses:
Si vous devez tout ignorer sauf certains répertoires ou fichiers et ignorer également certains fichiers inutiles dans ces répertoires autorisés, vous pouvez utiliser le
.dockerignore
fichier suivant :la source
*
sur la première ligne (au lieu de**
). Quote: "vous voudrez peut-être spécifier les fichiers à inclure dans le contexte, plutôt que ceux à exclure. Pour ce faire, spécifiez*
comme premier modèle, suivi d'un ou plusieurs!
modèles d'exception".À partir de la référence du fichier dockerfile :
Ainsi, une ligne contenant simplement ** ignorera tout dans le même répertoire que le Dockerfile.
Comme prévu, l'exclamation peut ensuite être utilisée pour référencer tous les fichiers que vous souhaitez envoyer au démon docker.
la source
**
passe en haut du fichier, sinon les exclusions seront ignorées. Docker utilise la dernière règle qui correspond comme règle «finale», donc si elle**
est la dernière, elle correspondra à tout.**
sur la première ligne et!foo
sur la ligne suivante sifoo
c'est le seul fichier que vous souhaitez inclure.Cela peut sembler étrange, mais si vous n'avez besoin que d'un seul fichier jar, vous pouvez créer un dossier «docker» dans votre système de construction qui contient votre Dockerfile. Lorsque vous exécutez vos builds, demandez aux scripts de build de copier le fichier jar unique dans "docker", puis d'exécuter la build de l'image docker (depuis le dossier "docker") et de la pousser vers votre registre docker une fois terminé.
la source