Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Maven 在docker编写命令之前执行mvn clean install_Maven_Spring Boot_Docker_Compilation_Docker Compose - Fatal编程技术网

Maven 在docker编写命令之前执行mvn clean install

Maven 在docker编写命令之前执行mvn clean install,maven,spring-boot,docker,compilation,docker-compose,Maven,Spring Boot,Docker,Compilation,Docker Compose,我在docker容器中运行多个spring boot microservice。 我正在编写docker-compose.yml文件以自动取消部署,但我遇到了一个问题。 所有spring boot微服务都有不同的配置文件,这取决于您是否希望在本地不使用docker运行它们,以及您是否希望使用docker运行另一个ig(基本上,每个配置文件都会更改微服务之间客户端的URL) 如果我运行docker compose up,并且已经编译的jar文件没有使用“docker”spring启动配置文件进行编

我在docker容器中运行多个spring boot microservice。 我正在编写docker-compose.yml文件以自动取消部署,但我遇到了一个问题。 所有spring boot微服务都有不同的配置文件,这取决于您是否希望在本地不使用docker运行它们,以及您是否希望使用docker运行另一个ig(基本上,每个配置文件都会更改微服务之间客户端的URL)

如果我运行docker compose up,并且已经编译的jar文件没有使用“docker”spring启动配置文件进行编译,它将使用错误的jar创建映像

MY DOCKER-COMPOSE.YML示例:

version: "3"

services:
  imageserver:
    build:
      context: ./ImageServer
      dockerfile: Dockerfile
    ports:
      - 8081:8081
    networks:
      - my-private-network
  core:
    build:
      context: ./Core
      dockerfile: Dockerfile
    ports:
      - 8082:8082
    networks:
      - my-private-network

networks:
  my-private-network:
  my-public-network
我的DOCKERFILE示例之一:

FROM openjdk:8-jdk-alpine
LABEL maintainer="lalala@gmail.com"
VOLUME /tmp
EXPOSE 8082
COPY ./target/*.jar Core.jar
ENTRYPOINT ["java","-jar","/Core.jar"]
在运行docker compose之前,是否有任何方法在每个目录中执行类似“mvn clean install-p docker”的命令,以确保将包含在映像中的jar已使用正确的配置文件编译?
在cretae容器之前必须激活该命令(从容器中取出以合成将包含在容器中而不是容器中的jar)


谢谢

您必须能够使用在Dockerfile上运行,并进行
maven干净安装
。但你为什么要这么做?将Docker build集成到maven中,并在您想要构建映像的配置文件上配置相同的内容

我找到了更好的解决方案!

我可以不使用概要文件进行编译,但是我可以使用java-jar选择spring概要文件


感谢您的评论、回复

在cretae容器之前必须激活该命令(从容器中取出以合成将包含在容器中而不是容器中的jar),您可能最好尝试构造图像,这样您就不需要重建图像以在不同的环境中运行它们。Spring Boot可以,这将是一种更好的方法。我不想在容器中编译代码,但谢谢