Java Spring引导和Docker组合设置参数
我可能是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.xmlJava 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
<?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