Spring 使用 Docker 容器化的引导 Maven 应用程序 - 基于配置文件标志构建 WAR

Spring Boot Maven Application Containerized with Docker - build WAR based on profile flag

我有一个 spring 使用配置文件 'application-dev.properties' 和 'application-test.properties' 的启动应用程序。该项目是使用Docker容器化的,看下面的代码

运行 'RUN mvn package' 有效,但我想基于其中一个配置文件进行构建。有什么办法可以做到这一点?因为“运行 mvn package -Dmaven.test.skip=true -P test”似乎不起作用..

 FROM maven:3.3.9-jdk-8-alpine as build-env
 COPY pom.xml /tmp/
 COPY settings.xml /root/.m2/settings.xml
 COPY src /tmp/src/

 WORKDIR /tmp/
 RUN mvn package -Dmaven.test.skip=true -P test

 FROM tomcat:8.0
 COPY --from=build-env /tmp/target/cbm-server-0.0.1-SNAPSHOT.war $CATALINA_HOME/webapps/cbm- server.war

 EXPOSE 8009
 EXPOSE 8080
 CMD ["catalina.sh", "run"]

您需要向运行时阶段提供配置文件。 您可以使用环境变量来完成。

ENV JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=test"