java - Springboot jar 运行,但不在 Docker 容器内
问题描述
我最近对一个 maven / springboot 项目进行了 docker 化。它在 docker 外部运行得很好,它甚至在 docker 容器中启动,但是一旦我尝试与应用程序交互,我就会收到一个java.lang.ClassNotFoundException
.
我的理解是这与类路径有关,但为什么 jar 会在本地运行而不是在 docker 容器中运行?
缺少的类属于项目目录结构中的外部 jar 文件,并在 pom.xml 中作为依赖项列出:
<dependency>
<groupId>externalJar</groupId>
<artifactId>externalJar</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/library/externalJar.jar</systemPath>
</dependency>
这是我的码头文件:
FROM openjdk:8-alpine
RUN apk update && apk add bash
RUN mkdir -p /opt/app
ENV PROJECT_HOME /opt/app
COPY target/main.jar $PROJECT_HOME/main.jar
WORKDIR $PROJECT_HOME
EXPOSE 8282
CMD ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","./main.jar"]
我错过了什么?
解决方案
推荐阅读
- .net - 在使用 c# 运行 flex 应用程序时在冲击波对象中,当表单最小化时弹出警告消息未正确显示表单
- ruby-on-rails - 如何将 NGINX 配置为仅服务器一个静态文件?
- android - 为什么 React Native Picker 在我的 Android 模拟器中不起作用?
- c# - ASP.NET 自定义 WebHook 实现
- amazon-web-services - env.yml 与 .config 之间的 AWS Elastic Beanstalk 区别
- java - Java Spring Application,经过HTTP请求方法
- typescript - 使用bind时如何对this的typescript类型说?
- android - 如何在 Android Studio 中禁用 lambda 功能?
- python - 简单的加法问题在python中不起作用
- python - Matplotlib:如何只显示一个图形而不关闭其他图形?