Portanto, a intenção principal era encaixar um aplicativo de jarra de gordura e colocá-lo no Elasticbeanstalk. O problema está no contexto. É um pouco estúpido adicionar tanto contexto ao docker se tudo que eu preciso é realmente um único arquivo jar.
Tenho brincado com o arquivo .dockerignore, mas estou perdido. Tentei usar a negação gitignore, mas não funcionou.
*
!Dockerfile
*/
!target/
target/*
!target/*.jar
Também existe aquela coisa com regex, mas parece que não há suporte para regex complicado.
^((?!Dockerfile).)*$
Também tentei pesquisar em stackoverflow, e estes dois são tudo que encontrei:
Esta pergunta pode ser semelhante à segunda, mas acho que é um pouco diferente, pois aqui, quero apenas incluir um único arquivo no contexto.
Qualquer ajuda será apreciada.
Respostas:
Se você precisar ignorar tudo, exceto alguns diretórios ou arquivos e também ignorar alguns arquivos desnecessários dentro desses diretórios permitidos, você pode usar o seguinte
.dockerignore
arquivo:fonte
*
na primeira linha (em vez de**
). Citação: "você pode querer especificar quais arquivos incluir no contexto, em vez de quais excluir. Para conseguir isso, especifique*
como o primeiro padrão, seguido por um ou mais!
padrões de exceção".Da referência do dockerfile :
Portanto, uma linha contendo simplesmente ** irá ignorar tudo no mesmo diretório que o Dockerfile.
Como esperado, a exclamação pode então ser usada para fazer referência a quaisquer arquivos que você deseja enviar para o daemon do docker.
fonte
**
vá para o início do arquivo, caso contrário, as exclusões serão ignoradas. O Docker usa a última regra que corresponde à regra "final", portanto, se**
for a última, corresponderá a tudo.**
na primeira linha e!foo
na próxima linha sefoo
for o único arquivo que deseja incluir.Isso pode parecer estranho, mas se tudo que você precisa é um único arquivo jar, você pode criar uma pasta "docker" em seu sistema de compilação que contém seu Dockerfile. Ao executar suas compilações, faça com que os scripts de compilação copiem o arquivo jar único em "docker", em seguida, executem a compilação da imagem docker (de dentro da pasta "docker") e envie para o registro do docker quando terminar.
fonte