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 ?
24
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
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