1、logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/defaults.xml"/><jmxConfigurator/><springProperty scope="context" name="springAppName" source="spring.application.name"/><!--保存日志的文件目录位置--><property name="LOG_PATH" value="log"/><!--打印到日志文件的日期格式--><property name="FILE_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:-} --- [%15.15t] %-40.40logger{39} : %m%n"/><!--打印到控制台的日期格式--><property name="CONSOLE_LOG_PATTERN"value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) {faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名--><fileNamePattern>${LOG_PATH:-}/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 每个日志文件的大小 --><maxFileSize>10MB</maxFileSize><!-- 保留多少天的日志 --><MaxHistory>40</MaxHistory></rollingPolicy><encoder><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf8</charset></encoder></appender><!--控制台打印的日志配置--><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><logger name="druid.sql.Statement" level="INFO" additivity="false"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/></logger><logger name="java.sql.PreparedStatement" level="DEBUG" additivity="false"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/></logger><logger name="org.springframework" level="INFO" additivity="false"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/></logger><root level="INFO" additivity="false"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/></root></configuration>
2、dockerfile
# 设置JAVA版本
FROM java:8
# 指定存储卷, 任何向/tmp写入的信息都不会记录到容器存储层
VOLUME /tmp
# 拷贝运行JAR包
ADD helloworld-1.0-SNAPSHOT.jar app.jar
# 设置JVM运行参数, 这里限定下内存大小,减少开销
ENV JAVA_OPTS="\
-server \
-Xms2g \
-Xmx4g \
-XX:MetaspaceSize=1g \
-XX:MaxMetaspaceSize=2g"
#空参数,方便创建容器时传参
ENV PARAMS=""
# 入口点, 执行JAVA运行命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS app.jar $PARAMS"]
3、docker-compose.yml
version: "1.0"
services:clock:image: helloworldvolumes:# 挂载日志 -v A:B ,A指宿主机位置,B指容器位置- ./logs:/logports:- "9004:9004"