springboot项目运行在docker中 file.exists()返回false没有报错

猿份哥 1年前 ⋅ 888 阅读 ⋅ 0 个赞

 

springboot项目运行在docker中 file.exists()返回false没有报错

 

表现:在windows运行正确,但是打包后运行在docker容器中找不到文件

  • 思考1:路径不对。
    经检查路径后被排除

 

  • 思考2:写法不对。
    网上有云:"windows 是/,linux应该是\\",经过检查路径后被排除

 

  • 思考3:没有权限。
    此文件的文件夹是root用户创建的
    抱着试一试的态度执行了命令【 chmod 777 文件或目录】,经过测试无果

 

  • 思考4:怀疑是docker容器的原因,请教了别人。找到了答案!

 

  • 处理结果:原来docker容器要访问宿主机需要做映射
    项目运行的时候 添加 -v 宿主机文件夹:容器文件夹 例如: -v /a/b/c:/a/b/c
    其实平时也知道这样映射,但是遇到问题了为什么关联不起来呢?可能大多数人也和我一样。
    所以需要多操作。多积累和分析bug的各种表现。

作者:猿份哥,版权所有,欢迎保留原文链接进行转载:)


全部评论: 0

    我有话说:

    ...jar没有主清单属性, spring boot或者spring cloud的maven项目 java -jar test.jar 方式启动:...jar没有主清单属性

    1.spring boot或者spring cloud的maven项目老是遇到问题...jar没有主清单属性 2.解决方法:pom.xml添加如下代码 <build> <

    微信小程序request:fail url not in domain list

    微信小程序request:fail url not in domain list 登录小程序后台 https://mp.weixin.qq.com/ 选择开发--开发设置--服务器域名--服务器

    win10升级后vitrulbox虚拟机启动:Failed to open/create the internal network 'HostInterfaceNetworking

    win10升级后虚拟机启动: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox

    systemctl enable kubelet Failed to execute operation: File exists

    安装kubelet: systemctl enable kubelet Failed to execute operation: File exists 解释 意思是kubelet文件已存在执行

    Spring Boot系列6-SpringBoot使用servlet

    介绍SpringBoot如何使用servlet pom.xml <dependency> <groupId>org.springframework.boot<

    SpringBoot系列9-使用jasypt自定义stater运行时动态传入加密密码

    文章目录 1.新建springboot-encryption-configuration项目实现stater 2.pom文件引入jasypt 3.resources/support/下配置

    docker部署的zookeeper连接超时不断重启

    经常发现docker部署的zookeeper连接超时 登上服务器发现zookeeper总是不断的启动: 一般原因是磁盘空间不足了会造成zookeeper不断重启 为什么会磁盘空间突然不足?一般是项目

    Spring Boot系列7-SpringBoot+mybatis+druid+TypeHandler

    介绍SpringBoot集成mybatis和druid以及自定义TypeHandler 创建数据库表 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- --------------------...

    SpringBoot系列10-文件上传

    文章目录 1.先来最简单的 2.设置文件大小,请求大小 3.多文件上传 怎样使用最简单的方式上传文件,如何上传多个文件呢 先来最简单的 pom.xml文件引入依赖文件 <dependencies> <dependenc...

    解决docker下载安装太慢,docker-compose安装太慢,docker镜像拉取安装太慢

    解决docker下载安装太慢,docker-compose安装太慢,docker镜像拉取安装太慢 1.docker 安装换成以下镜像 sudo curl -sSL https://get

    docker笔记7-docker-compose搭建mysql主从复制

    1.配置docker-compose 1.1.上传主docker-compose.yml,主要配置server-id=1,read-only=0,端口号为3306 docker-compose

    VUE如何关闭Eslint 的方法

      最近家里面创建vue项目的时候,手一抖把Use ESLint to lint your code?(Y/N) 选择了Y,然后到写代码的时候,虽然说是浏览器完全能运行结果,但是cmd

    docker安装redis并允许外网访问

    docker安装redis并允许外网访问 拉取redis镜像 docker pull redis:3.2 本地新建redis配置文件 redis.conf ,写入以下内容 #允许外网访问 bind

    React安装(用npm或者cnpm)

    1.确保你电脑上有nodeJS,直接下载安装下一步下一步就可以了。 2.打开git或者cmd,如下: ​ 3.创建项目 ​ 4.打开项目运行 ​ 5.浏览器打开,一般都是

    chrome 离线扩展程序安装 程序包无效:"CRX_HEADER_INVALID"

    安装chrome离线扩展程序时候:程序包无效:"CRX_HEADER_INVALID"导致crx扩展程序无法正常安装。 怎么办呢? 解决方法:将crx文件后缀.crx改为.zip然后重新拖进

    加入公众号
    加入公众号