私はマイクロサービスアーキテクチャのスプリングブートアプリケーションを持っています。 10の春のブートコンテナのようなもので実行しています。スプリングブートドッカーマウント共有ログバック設定ファイル
私が目指しているlogback.xmlをロードするための設定は、このようなものです。
コンテナを起動するときに、springback組み込みjar/containerにlogback.xmlをマウントしてロードするにはどうすればよいですか。
私の考えは、このようなものです。
これは、春の起動アプリokを実行します。
docker run -d --name=app1 app_image
このような何かが、私は、負荷にlogback.xml
docker run -d --name=app1 --volume=/home/host-path/log-back-conig-dir/:/container-app-dir/ app_image
docker run -d --name=app2 --volume=/home/host-path/log-back-conig-dir/:/container-app-dir/ app_image
docker run -d --name=app3 --volume=/home/host-path/log-back-conig-dir:/container-app-dir/
さらに詳細
を実装するために探しています何私は、公式の春から取らDockerfileの例を使用していていますブート
spring.io/guides/gs/spring-boot-docker
Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
logback.xmlこの
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<springProperty scope="context" name="springAppName" source="spring.application.name"/>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<springProfile name="default,dev,staging">
<logger name="guru.springframework.controllers" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE" />
</logger>
</springProfile>
<springProfile name="dev">
<appender name="stash" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<file>/varlog/log-tracing-demo/build/logs/${springAppName}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/log-tracing-demo/build/logs/${springAppName}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" >
<includeContext>false</includeContext>
<fieldNames>
<message>msg</message>
</fieldNames>
<customFields>{"application_name":"${springAppName}"}</customFields>
</encoder>
</appender>
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="stash" />
</root>
</springProfile>
</configuration>
のように見えます複数のスプリングブートドッカーコンテナを作成して、同じ単一のlogback.xmlファイルをマウントして共有するにはどうすればいいですか?質問のショートバージョン..です
Dockerファイルにlogback.xmlを追加し、すべてのアプリケーションで同じ設定ファイルを使用できます。ただし、Dockerはすでにログを生成しています。ですから、春のアプリをSTDOUTに記録し、ELKスタックのようなものを使ってすべてのログを1か所に集めることは良い考えです。 –
STDOUTをjsonではなく人間が読めるようにしたい。ファイルに出力されるものはjson形式です... json形式は、私がgrokパーサを書く必要がなく、変更するのが脆弱でないことを意味します。 –
また、libプロジェクトとしてlogback.xmlを作成して、私的artifactoryにアップロードして、アプリプロジェクトに依存関係を追加することもできます。 –