我有一个可执行的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
答案 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"]