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

时间:2015-09-02 11:38:55

标签: java docker

我有一个可执行的JAR,通常像这样执行:

java -jar myapp.jar

我希望将“ Dockerize ”这个应用程序放在容器中,比如说,放在/~/myapp下,然后将容器配置为始终运行此应用程序(使用上面的命令)当容器启动时。

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

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

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

1 个答案:

答案 0 :(得分:2)

以下是您要求的简单示例。这假设您从docker build .运行/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"]