docker是否需要linux映像作为运行嵌入式Jetty Spring Boot War文件的依赖项

问题描述 投票:1回答:4

我有一个基于嵌入式码头的spring boot war文件,我可以使用以下命令在Windows OS中运行它,并且工作正常。

java -jar my_app.war

是docker的新手,我想在docker容器中运行my_app.war。

现在创建my_app.war的映像,我是否首先需要包括linux映像依赖项,然后添加openjdk8映像?

我可以单独使用openjdk8图像依赖关系直接为my_app.war创建图像?

java spring-boot docker embedded-jetty docker-image
4个回答
1
投票

您应该从其中一张图像[这里] [1]来查看建筑物。

FROM openjdk:8-alpine
ADD ./path/to/war/my_app.war dir-in-container/my_app.war
CMD ["java", "-jar", "dir-in-container/my_app.war"]

这是从我的头上来的,您可能需要花些力气。通常使用Alpine之类的浅色图像,并且作为通用指针,请勿在容器的基本路径中添加或复制文件。


0
投票

您可以同时使用两种方式。基本上,openjdk8也将具有某些图像依赖性。如果有inux映像,它将直接为您提供已解决依赖关系的openjdk,您必须解决这些依赖关系。

参考:https://hub.docker.com/_/openjdk


0
投票

是。您需要添加openjdk图片。

您可以使用open-jdk-8建立这样的图像。

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ADD /build/libs/app.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

0
投票

我将Tomcat映像用作战争部署的基础:

这里是Dockerfile,如果您的项目使用Java 11运行,可以尝试使用

FROM tomcat:9.0-jre11-slim

COPY target/libs/binsy.war /usr/local/tomcat/webapps/
ENV JAVA_OPTS="-server -Xmx3168m -Xms3168m"
© www.soinside.com 2019 - 2024. All rights reserved.