Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行Jar的简单docker compose_Java_Docker_Jar_Docker Compose - Fatal编程技术网

Java 执行Jar的简单docker compose

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

我正在尝试设置一个非常简单的Docker容器,它将执行一个Jar文件。我想要一个运行简单Jar的图像。我不需要其他特别的东西

到目前为止,我的docker-compose.yml看起来像这样,但它的启动不正确:

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"