node_modules - dockerfile volume example
Dockerignore: ignorar todo excepto un archivo y el Dockerfile (3)
Así que la intención principal era acoplar una aplicación de jarra de grasa y colocarla en Elasticbeanstalk. El problema está en el contexto. Es un poco estúpido agregar tanto contexto a la ventana acoplable si todo lo que necesito es en realidad un solo archivo jar.
He estado jugando con el archivo .dockerignore, pero estoy perdido. Intenté usar la negación gitignore, pero no funciona.
*
!Dockerfile
*/
!target/
target/*
!target/*.jar
También hay esa cosa con expresiones regulares, pero parece que la expresión regular no es compatible.
^((?!Dockerfile).)*$
También he intentado buscar en stackoverflow, y estos dos son todo lo que encontré:
Esta pregunta podría ser similar a la segunda, pero creo que es ligeramente diferente ya que aquí, solo quiero incluir un solo archivo en el contexto.
Cualquier ayuda será apreciada.
De la referencia del dockerfile :
Más allá de las reglas de ruta de acceso a la ruta. Docker también admite una cadena especial de caracteres comodín ** que coincide con cualquier número de directorios (incluido el cero). Por ejemplo, ** / *. Go excluirá todos los archivos que terminen con .go que se encuentran en todos los directorios, incluida la raíz del contexto de construcción.
Por lo tanto, una línea que contenga simplemente ** ignorará todo en el mismo directorio que Dockerfile.
Como era de esperar, la exclamación se puede utilizar para hacer referencia a los archivos que desea enviar al demonio de la ventana acoplable.
Esto puede sonar extraño, pero si todo lo que necesita es un solo archivo jar, puede crear una carpeta "docker" en su sistema de compilación que contenga su Dockerfile. Cuando ejecute sus compilaciones, haga que las secuencias de comandos de compilación copien el archivo jar único en la "ventana acoplable", luego ejecute la compilación de la imagen de la ventana acoplable (desde dentro de la carpeta de la ventana acoplable) y empújela en el registro de la ventana acoplable cuando haya terminado.
Si necesita ignorar todo, excepto algunos directorios o archivos y también ignorar algunos archivos innecesarios dentro de esos directorios permitidos, puede usar el siguiente archivo .dockerignore
:
# Ignore everything
**
# Allow files and directories
!/file.txt
!/src/**
# Ignore unnecessary files inside allowed directories
# This should go after the allowed directories
**/*~
**/*.log
**/.DS_Store
**/Thumbs.db