【问题标题】:Maven project works locally but not on docker composeMaven 项目在本地工作,但不能在 docker compose 上工作
【发布时间】:2021-05-15 18:19:47
【问题描述】:

我有一个可以成功运行的java项目

./mvnw spring-boot:run

使用以下指令集通过 docker compose 运行的同一项目将无法运行:

docker-compose.yml 内部:

project:
    build: ./project
    ports:
      - 8080:8080

在项目目录的 Dockerfile 中:

ENTRYPOINT ["./mvnw","spring-boot:run"]

现在有趣的是,我在使用 docker-compose 时收到以下异常消息:

InvocationTargetException: Invalid bean definition with name 'redisTemplate' defined in class path resource [****/****/****/****/****/config/RedisContextConfiguration.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=****.****.***.***.redis.config.RedisContextConfiguration; factoryMethodName=redisTemplate; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [***/***/**/***/**/config/RedisContextConfiguration.class]] for bean 'redisTemplate': There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=appConfiguration; factoryMethodName=redisTemplate; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [***/****/***/***/config/AppConfiguration.class]]

我之前遇到了完全相同的错误,但我设法通过在 application.properties 文件中添加以下行来避免它:

spring.data.redis.repositories.enabled=false

现在这告诉我,docker-compose 看不到对 application.properties 所做的更改。由于容器无法运行,我无法使用 docker exec 来查看里面的文件并查看 application.properties 里面的内容。

有没有办法在用于创建容器的图像中访问此 .properties,以便我可以确认我对该属性不存在的怀疑? 项目在本地运行但不使用 docker 可能还有其他原因吗? 感谢您的帮助。

【问题讨论】:

    标签: java spring-boot docker docker-compose


    【解决方案1】:

    您可以尝试docker run -it your_image_name sh 获得一个可以帮助您预期图像内容的外壳。 我在 docker 命令中看到了两个环境变量 SERVER_PORT 和 APP_PROPERTIES,但是你没有在 docker-compose.yml 中声明它们。

    【讨论】:

      【解决方案2】:

      事实证明 Dockerfile 引用的是 docker-application.properties 而不是 application.properties 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        相关资源
        最近更新 更多