REPOSITORY TAG IMAGE ID CREATED SIZE
an-image 1 X 26 seconds ago 279 MB
cuando se ejecutará la imagen de la ventana acoplable, se mostrará el siguiente mensaje:
No java installations was detected.
Please go to http://www.java.com/getjava/ and download
Cuando se implementa Oracle JDK, ¡el tamaño de la imagen del acoplador se duplica con creces!
REPOSITORY TAG IMAGE ID CREATED SIZE
an-image 2 X 26 seconds ago 666 MB
Discusión
Cuando "¿No hay Oracle JDK para Docker" se busca en Google, solo se devuelven algunos enlaces a la imagen de Docker que contienen Docker. Cuando Oracle JDK se implementa en la imagen del acoplador, el tamaño se duplica con creces. Quiero mantener las imágenes de la ventana acoplable lo más pequeñas posible, ¡pero el Oracle JDK parece ser más grande que la imagen misma!
Pregunta
¿No hay Oracle JDK para Docker?
docker
oracle-jdk
030
fuente
fuente
Respuestas:
No. Debido a que no puede distribuir Oracle JDK o JRE, la licencia en efecto no permite la distribución . Cuando es distribuido por un tercero (incrustado con su aplicación), toda la responsabilidad por no funcionar es de esa parte. Es por eso que no encontrará Oracle JDK / JRE en ninguno de los registros públicos de Docker ni en ningún repositorio de paquetes de Linux.
Puede crear su propia imagen e instalar Oracle JDK o JRE utilizando el paquete webupd8team / java para Ubuntu / Debian.
Y si está utilizando Alpine Linux, esta publicación de blog explica qué dependencias son necesarias y vincula a StackOverflow para obtener instrucciones de instalación.
Actualización : Oracle tiene una imagen oficial de Docker en Docker Store ahora. https://blogs.oracle.com/developers/official-docker-image-for-oracle-java-and-the-openjdk-roadmap-for-containers
Enlace a la imagen de Oracle Java de Docker Store : https://store.docker.com/images/oracle-serverjre-8
fuente
Dockerfile
s en GitHub para obtener su propia imagen de Docker con Java. Por ejemplo github.com/anapsix/docker-alpine-java/blob/master/8/121b13/jdk/…Como Docker no es un sistema operativo, no, no hay JDK para Docker.
Según entiendo su pregunta, es que un JDK completo es demasiado grande para sus deseos, en este caso, puede intentar cambiar solo al JRE e incluir solo las bibliotecas necesarias.
JDK es el acrónimo de Java Development Kit, JRE es el de Java Runtime Engine. Por "pereza" debido a la complejidad de enumerar todas las dependencias necesarias, nadie se limita a las bibliotecas necesarias, pero ese es el camino a seguir si desea reducir el tamaño instalado al mínimo estricto.
Una forma más útil podría ser quitar algunas de las cosas instaladas que están ocupando mucho espacio:
Hay dos * src.zip que se pueden eliminar, no serán de utilidad, y como puede ver, el directorio lib tiene la mitad del tamaño y dentro tiene un montón de cosas que realmente no necesita:
Sin problemas, puede eliminar missoncontrol en un servidor, supongo que también puede deshacerse de visualvm, tendrá que verificar si necesita algo en este directorio lib, pero no puedo decirlo sin conocer su aplicación.
Una cosa que debe hacer en su dockerfile mientras instala oracle jdk es eliminar el
.tar.gz
archivo descargado que tiene aproximadamente el mismo tamaño que el directorio resultante ya que los.jar
archivos ya están comprimidos, el tar.gz está ahí para "empaquetarlos".Tiene que hacer todo esto en el mismo
RUN
comando, encadenando&&
para evitar agregar capas donde no eliminará el tamaño al eliminar los archivos de la capa anterior.fuente
No hay una implementación oficial de Oracle JDK proporcionada por Docker. Docker solía soportar su propia biblioteca Java en hub.docker.com, pero la desaprobaron a favor de la implementación real de OpenJDK ya que era "específica de OpenJDK desde que se introdujo por primera vez". Su razonamiento:
Entonces, si desea mantener su imagen de Docker lo más pequeña posible, considere usar OpenJDK en su lugar. Hay un repositorio oficial de OpenJDK Dockerfile o simplemente puede usarlo
docker pull openjdk
. El Dockerfile básico "fácil de ejecutar" para OpenJDK 7 es el siguiente (tomado del sitio web mencionado en la oración anterior):fuente