REPOSITORY TAG IMAGE ID CREATED SIZE
an-image 1 X 26 seconds ago 279 MB
Quando a imagem do Docker for executada, a seguinte mensagem é mostrada:
No java installations was detected.
Please go to http://www.java.com/getjava/ and download
Quando o Oracle JDK é implantado, o tamanho da imagem do docker é mais que o dobro!
REPOSITORY TAG IMAGE ID CREATED SIZE
an-image 2 X 26 seconds ago 666 MB
Discussão
Quando "Não existe Oracle JDK para docker" é pesquisado, apenas alguns links para a imagem do docker que contêm o docker são retornados. Quando o Oracle JDK é implantado na imagem do docker, o tamanho é mais que o dobro. Desejo manter as imagens do docker tão pequenas quanto possível, mas o Oracle JDK parece ser maior que a própria imagem!
Questão
Não há Oracle JDK para docker?
docker
oracle-jdk
030
fonte
fonte
Respostas:
Não. Como você não pode distribuir o Oracle JDK ou JRE, a licença em vigor não permite a distribuição . Quando distribuído por terceiros (incorporado ao seu aplicativo), toda a responsabilidade por ele não funcionar é dessa parte. É por isso que você não encontrará o Oracle JDK / JRE em nenhum registro público do Docker ou em nenhum repositório de pacotes Linux.
Você pode criar sua própria imagem e instalar o Oracle JDK ou JRE usando o pacote webupd8team / java para Ubuntu / Debian.
E se você estiver usando o Alpine Linux, esta postagem no blog explica quais dependências são necessárias e links para o StackOverflow para obter instruções de instalação.
Atualização : a Oracle tem uma imagem oficial do Docker na Docker Store agora. https://blogs.oracle.com/developers/official-docker-image-for-oracle-java-and-the-openjdk-roadmap-for-containers
Link para a imagem Java Java da Docker Store - https://store.docker.com/images/oracle-serverjre-8
fonte
Dockerfile
s no GitHub para obter sua própria imagem do Docker com Java. Por exemplo, github.com/anapsix/docker-alpine-java/blob/master/8/121b13/jdk/…Como o docker não é um sistema operacional, não há JDK para docker.
Pelo que entendi sua pergunta, é que um JDK completo é muito grande para seus desejos; nesse caso, você pode tentar mudar apenas para o JRE e incluir apenas as bibliotecas necessárias.
JDK é o acrônimo de Java Development Kit, JRE é o para Java Runtime Engine. Por "preguiça", devido à complexidade de listar todas as dependências necessárias, ninguém reduz apenas as bibliotecas necessárias, mas esse é o caminho a seguir se você deseja reduzir o tamanho instalado para o mínimo estrito.
Uma maneira mais utilizável pode ser retirar algumas das coisas instaladas que estão ocupando muito espaço:
Há dois * src.zip que podem ser removidos, eles não serão úteis e, como você pode ver, o diretório lib tem metade do tamanho e nele existem várias coisas que você realmente não precisa:
Você pode, sem problemas, remover o missoncontrol em um servidor, presumo que você também possa se livrar do visualvm, você terá que verificar se precisa de algo neste diretório lib, mas não posso saber sem conhecer seu aplicativo ..
Uma coisa que você deve fazer no seu dockerfile ao instalar o oracle jdk é remover o
.tar.gz
arquivo baixado, que é aproximadamente do mesmo tamanho do diretório resultante dos.jar
arquivos já compactados, o tar.gz está lá apenas para "empacotá-los".Você precisa fazer tudo isso no mesmo
RUN
comando, encadeando&&
para evitar adicionar camadas nas quais você não removerá o tamanho removendo arquivos da camada anterior.fonte
Não há implementação oficial do Oracle JDK fornecida pelo Docker. O Docker costumava dar suporte à sua própria biblioteca Java no hub.docker.com, mas a substituiu em favor da implementação real do OpenJDK, pois era "específico do OpenJDK desde que foi introduzido pela primeira vez". O raciocínio deles:
Portanto, se você deseja manter a imagem do Docker o menor possível, considere usar o OpenJDK. Existe um repositório oficial do OpenJDK Dockerfile ou você pode simplesmente usá-lo
docker pull openjdk
. O Dockerfile básico "fácil de executar" para o OpenJDK 7 é o seguinte (retirado do site listado na frase anterior):fonte