首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录到部署到Docker Tomcat的Spring应用程序

登录到部署到Docker Tomcat的Spring应用程序
EN

Stack Overflow用户
提问于 2022-04-14 21:18:18
回答 1查看 374关注 0票数 1

我设置了一个带有几个映像的dockerized环境:

  • Tomcat 10.0
  • Postgres 12.1
  • PgAdmin 4

我已经配置了Tomcat来激活管理器webapp,这样我就可以使用Maven货插件来部署Spring应用程序。部署工作的意义似乎是货物正确地将我的war上传给经理。不幸的是,它不会编写应用程序日志,而且应用程序也无法工作(当然,查看日志来找出原因是很好的,对吧?)

这是我的docker-compose.yml文件的相关部分。我的日志目录指向我的主机系统上的一个卷。

代码语言:javascript
复制
services:
  tomcat:
    container_name: tomcat
    image: tomcat:10.0-jdk11-openjdk
    restart: always
    
    ports: 
      - "8080:8080"
    networks:
      static:
        ipv4_address: 192.168.20.10
    volumes:
    - '/home/jason/development/projects/docker/java-dev-environment/volumes/tomcat/usr_local_tomcat_conf:/usr/local/tomcat/conf'
    - '/home/jason/development/projects/docker/java-dev-environment/volumes/tomcat/usr_local_tomcat_webapps:/usr/local/tomcat/webapps'
    - '/home/jason/development/projects/docker/java-dev-environment/volumes/tomcat/usr_local_tomcat_logs:/usr/local/tomcat/logs'

下面是logback.xml文件(位于Spring应用程序的src/main/resources目录中):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOGS" value="/usr/local/tomat/logs/gliese" />

    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <appender name="Console"
              class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
            </Pattern>
        </layout>
    </appender>

    <appender name="RollingFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGS}/gliese.log</file>
    <encoder
            class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
    </encoder>
    <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily and when the file reaches 10 MegaBytes -->
        <fileNamePattern>${LOGS}/gliese-%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    </appender>

    <!-- LOG everything at INFO level -->
    <root level="info">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    </root>
</configuration>

通过我的阅读,这应该可以将应用程序输出直接指向/usr/local/tomcat/logs的子目录,我已经确认该子目录存在(在主系统上)。

有人知道为什么我没有看到gliese.log文件吗?我在猫主人的容器里搜寻过它,以防它去别的地方,但没有运气。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-14 21:48:40

除非使用SpringBoot3.0(还没有达到GA),否则应该使用Tomcat 9。Tomcat 10实现了Servlet 5规范,它将javax.servlet API重新打包为jakarta.servlet。Spring在3.0发布之前不会支持这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71877717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档