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

标签 java docker

我有一个可执行 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/

相关文章:

ubuntu - 如何在 Windows 应用程序的 ubuntu 中运行 docker?

docker - docker run -e 的环境变量

node.js - 如何处理 Dockerfile for dev/prod 的差异

java - 使用 Java 和 XMLType 将 XML 数据作为关系数据存储到 Oracle 表中

java - 如何在 Java 文档中绘制 UML?

java - Apache POI 设置 Excel 图表标题

java - 获取同一页面内容的标签

docker - 无法安装到Kubernetes中的NFS Pod

Docker Compose - 使用容器环境变量的命令

java - 自定义 SonarQube 规则来识别实例变量