Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 Spring引导和Docker组合设置参数_Java_Maven_Docker_Spring Boot_Docker Compose - Fatal编程技术网

Java Spring引导和Docker组合设置参数

Java Spring引导和Docker组合设置参数,java,maven,docker,spring-boot,docker-compose,Java,Maven,Docker,Spring Boot,Docker Compose,我可能是docker领域的新手,尝试将我的Spring Boot项目与docker和docker compose结合起来,但是docker compose不起作用 我正在使用spring引导文档中描述的com.spotify maven插件。 我可以使用spotify插件构建和运行docker图像,也可以使用docker命令从命令行构建和运行docker图像,但在尝试使用docker compose up时不行 在这里,我总是得到错误“error:Invalid or corrupt jarfi

我可能是docker领域的新手,尝试将我的Spring Boot项目与docker和docker compose结合起来,但是docker compose不起作用

我正在使用spring引导文档中描述的com.spotify maven插件。 我可以使用spotify插件构建和运行docker图像,也可以使用docker命令从命令行构建和运行docker图像,但在尝试使用docker compose up时不行

在这里,我总是得到错误“error:Invalid or corrupt jarfile/app.jar”

我确信这与从spotify插件传递到docker命令的ARG JAR_文件有关。 我不知道如何在docker-compose.yml中设置这个ARG_文件,这样我就可以从docker compose开始,也可以使用spotify插件只运行docker映像

以下是我的设置:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
docker-compose.yml:

 version: '3'
services:
   web:
        environment:
            - JAR_FILE=target/someProject-app.jar
        build: ./
        ports:
            - "8188:8188"

我建议这样做

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/someproject-app.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8188

执行Dockerfile时,将复制目标中的相应jar

我建议这样做

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/someproject-app.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8188

执行Dockerfile时,将复制目标中的相应jar

在构建dockerfile时,必须添加此参数

docker build-build arg JAR\u FILE=JAR\u FILE\u路径

在docker-compose.yml中执行此操作的替代方法

version: '3'
services:
   web:
      build:
        context: ./
        args:
          JAR_FILE: jar_file_path
      ports:
        - "8188:8188"

在生成dockerfile时,必须添加此参数

docker build-build arg JAR\u FILE=JAR\u FILE\u路径

在docker-compose.yml中执行此操作的替代方法

version: '3'
services:
   web:
      build:
        context: ./
        args:
          JAR_FILE: jar_file_path
      ports:
        - "8188:8188"

为什么会这样?我不明白。你能详细说明一下吗?是的,我知道这个,。但我正在寻找一种方法,将参数JAR_文件从docker-compose.yml文件传递到cocker命令。您可以使用ENV变量,如'ENV SPRING_PROFILES\u ACTIVE dev',并从docker-compose.yml文件传递值,这是为什么?没有得到。你能详细说明一下吗?是的,我知道这个,。但是我正在寻找一种方法,将参数JAR_文件从docker-compose.yml文件传递到cocker命令。您可以使用ENV变量,如'ENV SPRING_PROFILES\u ACTIVE dev',并从docker-compose.yml文件传递值。谢谢。这给了我一个暗示。我认为这是正确的答案。您可以在docker-compose.yml文件中执行相同的操作。版本:“3”服务:web:build:context:./args:JAR\u文件:target/bosstools-app.JAR端口:-8188:8188谢谢。这给了我一个暗示。我认为这是正确的答案。您可以在docker-compose.yml文件中执行相同的操作。版本:“3”服务:web:build:context:./args:JAR\u文件:target/bosstools-app.JAR端口:-8188:8188