本地构建springboot项目
1.编写Dockerfile
FROM java:8
EXPOSE 8090
VOLUME /tmp
VOLUME /var/log/wang-blog
ADD wang-blog-1.0.0-SNAPSHOT.jar wang-blog.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/wang-blog.jar"]
# FROM:指定存在的镜像,java:8是我刚刚拉取的镜像,运行的基础。
# VOLUME:指向的一个临时文件,用于存储tomcat工作。ADD:复制文件并且重命名文件。
# ENTRYPOINT:初始化配置或者自定义配置。
2.springboot项目打jar包
3.logback日志相关配置
<configuration>
<springProperty scope="context" name="LOG_HOME" source="logging.file.path" defaultValue="/var/log/wang-blog"/>
<springProperty scope="context" name="LOG_NAME" source="spring.application.name" defaultValue="${project.name}"/>
<property name="CONSOLE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%5level) %magenta(${PID}) --- [%15.15thread] %cyan(%-40.40logger) : %msg%n"/>
<property name="FILE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5level ${PID} --- [%15.15thread] %-40.40logger : %msg%n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>MARKER_MP_NOTIFY</marker>
</evaluator>
<onMismatch>NEUTRAL</onMismatch>
<onMatch>DENY</onMatch>
</filter>
<file>${LOG_HOME}/${LOG_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${LOG_NAME}_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
<!-- ############################## Inline Log Config ############################## -->
<property name="INLINE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5level ${PID} --- [%15.15thread] : %msg%n"/>
<appender name="INLINE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${LOG_NAME}_inline.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${LOG_NAME}_inline_%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>5</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${INLINE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="INLINE_LOG" level="DEBUG" additivity="false">
<appender-ref ref="INLINE_LOG"/>
</logger>
</configuration>
上传到服务器
1.springboot项目打jar包
2.服务器上构建文件夹
mkdir -p /docker/service
cd /docker/service
3.使用xftp上传jar包、Dockerfile文件
构建docker镜像
cd /docker/service
docker build -t wang-blog .
如上表示成功
启动docker容器
#-p 8090:8090 ; 左边表示宿主机端口,右边表示程序运行的端口(与配置文件需一致)
docker run --name wang-blog -d -p 8090:8090 -v /var/log/wang-blog:/tmp/logs/wang-blog wang-blog
如上表示成功
查看启动日志
docker logs '容器id'