Run jar file in docker image
This may not be quite what you asked, but if you just need to run a JAR (rather than that being just one part of a larger custom container) I like this approach of mapping a volume/folder to the JAR and running it using a standard upstream image:
docker run --rm -it -v /home/me/folderHoldingJar:/home:Z java:latest /bin/bash -c '/usr/bin/java -jar /home/theJarFile.jar'
There is even some additional args you can add if the JAR needs to display a GUI.
There is a difference between images and containers.
- Images will be built ONCE
- You can start containers from Images
In your case:
Change your image:
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"]
Build your image:
docker build -t imageName .
Now invoke your program inside a container:
docker run --name myProgram imageName
Now restart your program by restarting the container:
docker restart myProgram
Your program changed? Rebuild the image!:
docker rmi imageName
docker build -t imageName .