Java 执行Jar的简单docker compose
我正在尝试设置一个非常简单的Docker容器,它将执行一个Jar文件。我想要一个运行简单Jar的图像。我不需要其他特别的东西 到目前为止,我的docker-compose.yml看起来像这样,但它的启动不正确:Java 执行Jar的简单docker compose,java,docker,jar,docker-compose,Java,Docker,Jar,Docker Compose,我正在尝试设置一个非常简单的Docker容器,它将执行一个Jar文件。我想要一个运行简单Jar的图像。我不需要其他特别的东西 到目前为止,我的docker-compose.yml看起来像这样,但它的启动不正确: version: "3.3" services: myapp: image: openjdk:8 container_name: "myapp" restart: always ports: - 8091:8091 volumes
version: "3.3"
services:
myapp:
image: openjdk:8
container_name: "myapp"
restart: always
ports:
- 8091:8091
volumes:
- "./meanwhile-in-hell.jar:/app.jar"
command: ['java', '-jar', '/app.jar']
使用命令:['java','-jar','/app.jar']
选项,我在Docker日志中看到了这一点:
Error: Invalid or corrupt jarfile /app.jar
如果我改为使用入口点:[“sh”、“-c”、“java-jar/app.jar”]
,我会看到相同的错误
Jar文件绝对良好,没有损坏。我在另一个运行的tomcat:8-alpine
容器上手动运行了它,它成功启动 您可以检查这一点,您需要在pom的入口点和路径中设置标志
对我来说,当我遇到这个问题时,我所做的就是把JAR_文件
pom中没有正斜杠“/”的参数,并且有效
您必须将正确的目录与本地jar文件的正确名称放在一起,而不是放在hell.jar中。Volume将帮助您将一个卷映射到一个卷,或者将一个文件夹从主机映射到您的容器中作为一个卷,因此您可能需要对其进行一些更新以使其正常工作
-“:/usr/app”
然后您的命令:命令:['java','-jar','/usr/app/whilein hell.jar']
,试试看
Error: Invalid or corrupt jarfile /app.jar
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
volumes:
- "./meanwhile-in-hell.jar:/app.jar"