Ejecutar el archivo jar en la imagen de docker


Creo una imagen de docker con java y coppying jar file en image . Mi Dockerfile es :

FROM anapsix/alpine-java
MAINTAINER myNAME 
COPY testprj-1.0-SNAPSHOT.jar /home/testprj-1.0-SNAPSHOT.jar
RUN java -jar /home/testprj-1.0-SNAPSHOT.j

Después de ejecutar el siguiente comando

docker build -t imageName.

En la consola veo la salida de la aplicación y everthing está bien . Pero cuando paro la imagen no se como ejecutar la imagen de nuevo ? Cuando ejecute el siguiente comando:

docker run -i -t imageName java -jar /home/testprj-1.0-SNAPSHOT.jar

La aplicación se ejecuta de nuevo ,pero en mi Dockerfile ya escribí este comando. Cómo ejecutar image sin este comando y ejecutar la aplicación automáticamente ?

Author: Svetoslav Angelov, 2016-01-28

1 answers

Hay una diferencia entre imágenes y contenedores.

  • Las imágenes se construirán UNA VEZ
  • Puede iniciar contenedores desde imágenes

En su caso:

Cambia tu imagen:

FROM anapsix/alpine-java
MAINTAINER myNAME 
COPY testprj-1.0-SNAPSHOT.jar /home/testprj-1.0-SNAPSHOT.jar
CMD ["java","-jar","/home/testprj-1.0-SNAPSHOT.jar"]

Construye tu imagen:

docker build -t imageName .

Ahora invoca tu programa dentro de un contenedor:

docker run --name myProgram imageName

Ahora reinicie su programa reiniciando el contenedor:

docker restart myProgram

¿Tu programa cambió? Reconstruir la imagen!:

docker rmi imageName
docker build -t imageName .
 49
Author: blacklabelops,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-13 21:13:51