我有一个可执行 JAR,通常执行方式如下:
java -jar myapp.jar
我想通过将其放置在容器中(例如在 /~/myapp
下)来“Dockerize”此应用程序,然后将容器配置为始终运行此应用程序当容器启动时应用程序(使用上面的命令)。
使用this sample Dockerfile
作为起点,我需要添加哪些条目才能让 Docker 在文件系统中正确定位 myapp.jar
并在启动时运行它?
假设当我运行 Docker 来构建镜像时,二进制文件将位于 build/distributions
下,如下所示:
myapp/
src/
build.gradle
Dockerfile
build/distributions/
myapp.jar
最佳答案
这是您所请求的一个简单示例。这假设您正在从 /myapp/src/
运行 docker build .
并且应用程序在容器的前台运行。
# 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"]
关于java - 将 Java 应用程序部署到 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352143/