装载的docker卷正在损坏文件

装载的docker卷正在损坏文件,docker,docker-compose,Docker,Docker Compose,我认为这与机器有关,但我不确定。我在OSX上使用最新的docker工具箱和docker 1.10.3 我有一个使用Dockerfile的项目,它将代码复制到容器中,如下所示: [...] COPY . /code VOLUME /code WORKDIR /code [...] 为了更快的本地开发(测试执行),我们将当前目录装载到compose文件中 [...] volumes: - .:/code [...] 执行 docker-compose -f docker-compos

我认为这与机器有关,但我不确定。我在OSX上使用最新的docker工具箱和docker 1.10.3 我有一个使用Dockerfile的项目,它将代码复制到容器中,如下所示:

[...]
COPY . /code
VOLUME /code
WORKDIR /code
[...]
为了更快的本地开发(测试执行),我们将当前目录装载到compose文件中

[...]
volumes:
      - .:/code
[...]
执行

docker-compose -f docker-compose.yml -f docker-compose.testing.yml run web py.test
现在,看起来我有两个不同的文件夹/文件: 当运行容器并查看带有vi的文件时,主机上的一切都是这样。更改文件和执行我们的测试(特别是pytest)让python解释器读取垃圾,从而无法执行测试

范例

文件的结尾如下所示(已在Dockerfile中复制到容器中):

从主机和容器内部看,该文件现在看起来都很好。 在执行pytest时,它仍然读取复制代码的内容,为我在本地中断测试

如果我更改得更多,它既不是复制的文件,也不是装载的文件,因此文件会在任意位置断裂:

File "/code/some_code.py", line 69
    dispatch_uid='backup_
                        ^
SyntaxError:扫描字符串文字时下线 (tail显示正确的语法等,代码绝对没有问题)


我们的设置有什么问题吗?或者只是我的机器坏了?我尝试重新启动并重新创建docker机器,但这没有帮助。

我没有在IOS上使用DT的经验,但我认为您可能做了一些改进

如果是这样的话,解决方案是移动文件或装入点,这样文件就不会被遮挡


文章可能与此相关:

我会尝试以只读模式挂载,如果有什么奇怪的地方,请仔细检查文件系统类型。
几年前,ntfs-3g文件出现了一个bug,可能是类似的(显然不是ntfs,因为我们使用的是OS X)

您可能会更幸运地将此作为问题发布到Docker Compose存储库:。然后,项目的维护人员可以与您合作,确定这是环境问题、用户问题还是实际的bug。嗨!只是想知道您是否取得了一些进展。通常,当您在某个位置装载卷时,文件夹会装载在容器中并替换容器的文件夹。如果在那里添加文件,然后装载,那么实际上就是用本地装载的文件夹替换docker文件夹。如果您同时执行此操作,我对您的文件损坏并不感到惊讶。因此,您应该有一个带卷装载的dev映像和一个带副本的prod映像,但不能同时使用这两个映像。
File "/code/some_code.py", line 69
    dispatch_uid='backup_
                        ^