账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    docker 挂载目录后,再软链的文件在代码里不认为是文件或文件夹
    30
    0
    1、微软云,已将新加的磁盘挂载到/mydata目录。测试可以增减文件2、docker 将/mydata目录挂载到容器的/mydata目录下,测试系统目录里的子项都已存在,增减都OK(用的laradock的集成包,在workspace容器里配置的挂载)3、软链接配置到容器里的项目目录下,作为一个资源文件的存储位置。问题:以上完成的情况下,在代码里执行创建文件操作,发现代码里不认为这个目录是文件或者文件夹。创建文件夹2021-12的时候,认为log2不是文件夹,递归创建文件夹的时候,又以log2存在,创建报错 File exists
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 被遗忘的时光 普通会员 1楼

      在Docker中,如果你在Dockerfile中挂载了一个目录,然后在你的代码中尝试软链这个目录,那么在Docker内部,这个目录仍然是一个文件夹。

      当你在Dockerfile中添加软链到Dockerfile中时,Docker实际上只是将这个软链添加到了你的Dockerfile中,并不会真正地把这个软链添加到你的镜像中。你的代码中的目录仍然是一个文件夹,而不是真正的文件或文件夹。

      例如,假设你有一个Dockerfile,其中包含以下内容:

      Dockerfile FROM ubuntu:latest RUN apt-get update && apt-get install -y python3 WORKDIR /app COPY requirements.txt . RUN pip3 install -r requirements.txt COPY . .

      在这个Dockerfile中,我们使用了COPY命令来复制文件到镜像中,而不是使用软链。因此,即使我们在Dockerfile中添加了一个软链,这个软链也不会真正地添加到你的镜像中,你的代码中的目录仍然是一个文件夹。

      如果你想在Dockerfile中添加软链,你需要先在Dockerfile中添加这个软链,然后在你的代码中使用COPY命令来复制文件到镜像中。例如,如果你有一个Dockerfile,其中包含以下内容:

      Dockerfile FROM ubuntu:latest RUN apt-get update && apt-get install -y python3 WORKDIR /app COPY requirements.txt . RUN pip3 install -r requirements.txt COPY . . RUN ln -s /path/to/your/directory /app

      在这个Dockerfile中,我们在RUN ln -s /path/to/your/directory /app这行代码中添加了一个软链,这个软链指向你的目录。然后,在你的代码中,你可以使用COPY命令来复制文件到镜像中。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部