使用骆驼春季启动项目中的环境variables的configuration文件

我正在骆驼春季启动项目上,在camelcontext.xml我通过环境variables使用configuration文件。

代码如下 –

 <?xml version="1.0" encoding="UTF-8"?> . . . <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"> <property name="location" value="file:${cfgfilepath}config.cfg" /> <property name="parser" ref="jasypt" /> </bean> . . // remaining code 

现在,当我在Windows机器上正常运行这个项目时,它正在成功运行。 但是,当我尝试创build一个docker集装箱 ,我无法得到这个cfg文件。

我试过这些东西 –

  • 将path硬编码为C:/Users/camelproject/src/main/resources/config.cfgC:\Users\camelproject\src\main\resources\config.cfg (我不确定文件的结构path)
  • Dockerfile创build一个ENV为: ENV cfgfilepath C:/Users/camelproject/src/main/resources/config.cfgENV cfgfilepath C:\Users\camelproject\src\main\resources\config.cfgENV cfgfilepath C://Users//camelproject//src//main//resources//config.cfg ,然后使用上面代码中的variables。
  • 在运行C:/Users/camelproject/src/main/resources/config.cfg docker run命令时,传递了C:/Users/camelproject/src/main/resources/config.cfg作为-e选项中的值。 即。 docker run -e cfgfilepath=C:/Users/camelproject/src/main/resources/config.cfg
  • Dockerfile我做了 – COPY target/config.cfg /app/config/config.cfg ,然后在camelContext.xml我用value="file:/app/config/config.cfgreplace,但是也返回了下面的错误。

我哪里错了? 我得到的错误 –

FileNotFoundException:C:/Users/camelproject/src/main/resources/config.cfg(没有这样的文件或目录)

或者(当我使用环境variables)

FileNotFoundException:$ {cfgfilepath} config.cfg(没有这样的文件或目录)

Dockerfile

 FROM java:openjdk-8-jre-alpine WORKDIR /app VOLUME /app /var/config # add directly the jar ADD target/camelproject-jar-with-dependencies.jar /app.jar COPY target/config.cfg /app/config/config.cfg # ENV cfgfilepath /app/config/ # ENV cfgfilepath C:/Users/camelproject/src/main/resources/ ENV cfgfilepath C://Users//camelproject//src//main//resources// RUN sh -c 'touch /app.jar' CMD echo "The application will start in few seconds..." && \ java -Djava.security.egd=file:/dev/./urandom -jar /app.jar