docker-compose挂载启动容器生成文件失败问题java.io.FileNotFoundException:No such file or directory

方法一:是权限问题,最后应用生成的文件都各自挂载一个目录(不要目录中包含目录,一个一个挂载显示出来)

version: '3.0'
services:
  luxu: 
    build:
     #这是指定dockerfile的文件路径
      context: /opt/app/docker
      dockerfile: Dockerfile
    image: luxu:V1.0
    container_name: luxu
    restart: always
    ports:
      - 8080:8080
    #如果和宿主机共用一个网络,就不需要设置端口,不然就使用默认网桥模式
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /opt/app/luxuAfter:/opt/app/luxuAfter:rw
      - /opt/app/filedata/:/opt/app/filedata/:rw
      - /opt/app/mysql/mysqldump:/usr/bin/mysqldump

方法二:如果您想要确保 Docker 容器内挂载目录下的所有子目录都具有操作权限,可以尝试在 Docker Compose 中设置一个适当的 umask 值。

在您的 docker-compose.yml 文件中,您可以添加一个 umask 的环境变量来设置默认文件和目录的权限掩码。以下是一个示例:

version: '3'
services:
  your-service:
    image: your-image
    volumes:
      - /opt/app/luxuAfter:/opt/app/luxuAfter:rw
    environment:
      - "UMASK=0000"

在上面的示例中,我们将 UMASK 环境变量设置为 0000,这意味着新创建的文件和目录将具有最大的权限(即读取、写入和执行权限)请注意,具体的环境变量设置可能因您使用的基础镜像或操作系统而有所不同。如果上述示例对您的情况不适用,请参考您所使用的容器镜像的文档,以了解如何在其中设置默认权限。另外,确保您在 Docker 容器内挂载目录的宿主机上设置了正确的权限,以确保容器内部的进程可以在该目录中进行读写操作。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值