Dockerコンテナで実行しているときに、Springブートでアプリケーションのプロパティが読み取られません。DockerでSpringブートでapplication.propertiesを読み取ることができません
マイapplication.yml
server:
port: 8080
context-path: /mail
custom:
greeting: Hello YML
Dockerfile
FROM java:8-jre
VOLUME /tmp
COPY ./mail.jar /app/mail.jar
RUN sh -c 'touch /app/mail.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/mail.jar" ]
EXPOSE 8080
とシンプルなApplicationControllerに
@RestController
public class ApplicationController {
private final Environment environment;
@Autowired
public ApplicationController(Environment environment) {
this.environment = environment;
}
@RequestMapping(path = "/")
public Hello hello() {
final Hello hello = new Hello();
hello.setGreeting(environment.getProperty("custom.greeting"));
return hello;
}
}
(ホスト)と
HTTP上のアプリを利用できるようになり:// localhostを:18080
ドッカー
- サーバー私は自動的にポートに8080(ドッカ)をマップのIntelliJドッカープラグインを使用しています。 context-pathプロパティは適用されません。 /としないとまだ利用可能アプリ/メール/
- custom.greeting性のない読み出しプロパティファイルとコントローラが返しから{「挨拶」:ヌル}代わり{「挨拶」:「こんにちはYML」 }ドッカー なし
コンテキストパスが正しく適用コントローラによって
custom.greetingプロパティを返しますが正しく
あなたの 'application.yml'ファイルはどこですか?クラスパスにはないようです。つまり、ドッカーの画像に表示される太った瓶には含まれていません。 –
src/main/resourcesの下にあるApplication.ymlパスであり、クラスパス上にあります。@PropertySourceアノテーションを追加して同じ問題が発生しました –
'spring-boot-starter-actuator'を追加して、エンドポイント'/env'があなたの環境について教えてくれるものを見てください。 '' applicationConfig:[classpath:/application.yml] ':{"custom.greeting": "..."} ' –