jetty-maven-plugin和jetty-runner之间的系统属性差异

我一直使用jetty-maven-plugin来成功运行eclipse中的api,并且替代了系统属性。

我的docker文件在下面

<New id="pdsDatasourcePool" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="wac"/></Arg> <Arg>jdbc/ads</Arg> <Arg> <Call class="oracle.ucp.jdbc.PoolDataSourceFactory" name="getPoolDataSource" > <Set name="URL"><SystemProperty name="DB.URL" /></Set> <Set name="user"><SystemProperty name="DB.USERNAME" /></Set> <Set name="password"><SystemProperty name="DB.PASSWORD" /></Set> <Set name="minPoolSize"><SystemProperty name="DB_CONNECTION_MIN_POOL_SIZE" type="Integer" default="2" /></Set> <Set name="maxPoolSize"><SystemProperty name="DB_CONNECTION_MAX_POOL_SIZE" type="Integer" default="10"/></Set> <Set name="initialPoolSize"><SystemProperty name="DB_CONNECTION_INITIAL_POOL_SIZE" type="Integer" default="2"/></Set> <Set name="connectionFactoryClassName">oracle.jdbc.replay.OracleDataSourceImpl</Set> </Call> </Arg> 

当我使用-D作为属性/值时,这些属性被replace为正确的值。

但是,当我们进行实际部署时,我们在Docker容器中使用jetty-runner,除非对值进行硬编码,否则应用程序不会运行。 我尝试使用-e来取代值,但它不起作用。

在容器内部,启动脚本如下所示

 java $JAVA_OPTS -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE \ -Dlogback.configurationFile=opt/config/logback.xml -Dlogs.output=/opt/logs -Dlogs.loglevel=ERROR \ -Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Slf4jLogger \ -jar /opt/jetty-runner.jar \ --port 8082 --stats unsecure \ --config /opt/config/jetty/jetty.xml --config /opt/config/env/jetty-http-env.xml \ --lib /opt/lib \ /opt/event-microservice-api.war /opt/event-microservice-listener.war 

我的问题是,在使用docker运动员时,参数应该被replace的具体方式是什么?

干杯克里斯

将“SystemProperty”更新为“Env”,如下所示。 这将工作。

 <Set name="URL"><Env name="DB_URL"/></Set> <Set name="user"><Env name="DB_USERNAME"/></Set> <Set name="password"><Env name="DB_PASSWORD"/></Set> <Set name="minPoolSize"><Env name="DB_CONNECTION_MIN_POOL_SIZE" type="Integer" default="2" /></Set> <Set name="maxPoolSize"><Env name="DB_CONNECTION_MAX_POOL_SIZE" type="Integer" default="10"/></Set> <Set name="initialPoolSize"><Env name="DB_CONNECTION_INITIAL_POOL_SIZE" type="Integer" default="2"/></Set>