我有一个基于嵌入式码头的spring boot war文件,我可以使用以下命令在Windows OS中运行它,并且工作正常。
java -jar my_app.war
是docker的新手,我想在docker容器中运行my_app.war。
现在创建my_app.war的映像,我是否首先需要包括linux映像依赖项,然后添加openjdk8映像?
或
我可以单独使用openjdk8图像依赖关系直接为my_app.war创建图像?
您应该从其中一张图像[这里] [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之类的浅色图像,并且作为通用指针,请勿在容器的基本路径中添加或复制文件。
您可以同时使用两种方式。基本上,openjdk8也将具有某些图像依赖性。如果有inux映像,它将直接为您提供已解决依赖关系的openjdk,您必须解决这些依赖关系。
是。您需要添加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"]
我将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"