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"
我有一个 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"