将Java应用程序部署到Docker镜像

我有一个正常执行的可执行JAR,如下所示:

java -jar myapp.jar 

我想“ Dockerize ”这个应用程序,把它放在一个容器中,比如/~/myapp ,然后configuration容器,当容器启动时总是运行这个应用程序(使用上面的命令)。

使用这个示例Dockerfile作为起点,我需要添加哪些条目才能让Docker将myapp.jar正确定位到文件系统中,并在启动时运行它?

假设在我运行Docker构build镜像时,二进制文件将位于build/distributions如下所示:

 myapp/ src/ build.gradle Dockerfile build/distributions/ myapp.jar 

这是你要求的一个简单的例子。 这假定你正在运行docker build . from /myapp/src/和应用程序正在容器的前台运行。

 # Use Ububtu 14.04 as our base O/S FROM ubuntu:14.04 # Set our working directory WORKDIR / # Update the repositories and then install java RUN apt-get update && install -y default-jre # Copy the application from its folder to our image # Assumes docker build is run from /myapp/src ADD /build/distributions/myapp.jar /myapp.jar # Run the app when the container is executed. CMD ["java", "-jar myapp.jar"]