In this
post, I am going to explain how to run jar file in docker container. If you
want to skip step 1, you can download the jar file ‘demoDockerApp-1.jar’ from
below location.
Step 1: Generate jar file.
Open
Eclipse. Create new maven project ‘demoDockerApp’.
File ->
New -> Maven Project.
Select the
checkbox ‘Create a simple project (skip archetype selection)’. Click on Next
button.
Give Group
Id and Artifact Id as 'demoDockerApp' and set the version to 1. Click on Finish
button.
Total
project structure looks like below.
Create a
package com.sample.app.
Create
Application.java like below.
Application.java
package com.sample.app; public class Application { public static void main(String args[]) { System.out.println("Welcome to Docker Application Development"); } }
Update
pom.xml like below.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>demoDockerApp</groupId> <artifactId>demoDockerApp</artifactId> <version>1</version> <build> <plugins> <plugin> <!-- Build an executable JAR --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.sample.app.Application</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>
Generate jar file
Right
click on the project -> Run As -> Maven install.
Generate jar file
Right
click on the project -> Run As -> Maven install.
You can
see the generated jar file location in console.
Step 2: Create an image with jar file.
Create a
directory ‘helloJava’.
Copy the
jar file ‘demoDockerApp-1.jar’ to helloJava directory.
Create
‘Dockerfile’ with below content.
Dockerfile
FROM openjdk COPY ./demoDockerApp-1.jar /deployments/ CMD java -jar /deployments/demoDockerApp-1.jar
Execute
the command 'docker image build -t myjavaapp .' to generate the image.
$ls Dockerfile demoDockerApp-1.jar $ $docker image build -t myjavaapp . Sending build context to Docker daemon 5.12kB Step 1/3 : FROM openjdk ---> 831a029b6add Step 2/3 : COPY demoDockerApp-1.jar /deployments ---> 313f0b383274 Step 3/3 : CMD java -jar /deployments/demoDockerApp-1.jar ---> Running in b1531627a67f Removing intermediate container b1531627a67f ---> e7d795f59293 Successfully built e7d795f59293 Successfully tagged myjavaapp:latest
Step 3: Run the image.
$docker
run myjavaapp
Welcome to
Docker Application Development
Hi, I have a number of old .jar applications that have a UI which would normally be run on Windows, will the above work too ?
ReplyDeleteyes, that will work
ReplyDelete