Spring启动docker mount共享logbackconfiguration文件
我有一个微型服务架构的春季启动应用程序。 像10弹簧启动容器运行。
加载我打算做的logback.xml的设置看起来像这样。
当我启动容器时,如何在弹簧引导embedded式jar /容器中装载和加载logback.xml。
我的想法是这样的。
这将运行春季启动应用程序确定。
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/
更多信息
我正在使用从官方spring引导中获取的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>
简短的问题是..
如何使多个Spring Boot Docker容器装载并共享同一个logback.xml文件。
我build议使用Dockerfile命令将logback.xml文件放在图像中:
ADD logback.xml container-app-dir/
如果你不想把你的xmlconfiguration放在Dockerfile / image中,你可以使用在所有容器之间共享的命名卷 ,下面是很好的信息: Docker Compose – 在多个容器之间共享命名卷所以你可以在运行时通过使wget)并放置到共享的命名卷。
- 如何使用Jenkins的Docker-Build-Step插件获取Container_ID
- 通过Terraform发送Docker日志到AWS CloudWatch
- 无法进入Apache Karafdocker集装箱
- 从Nexus Repository Manager OSS 3.0.1-01中移除Docker镜像
- DevOps vs Docker
- Docker-compose自动同步项目文件
- 在Kubernetes,OpenShift,Docker Swarm和Docker DataCenter部署工具中哪一个都有自动回滚?
- 在OSX上安装Docker工具箱时出现版本错误
- 将容器化的.NET Core MVC / WebAPI应用程序连接到本地安装的Postgres