【问题标题】:Files in Docker volumes not refeshing on Windows on file changeDocker 卷中的文件不会在文件更改时在 Windows 上刷新
【发布时间】:2018-09-23 15:45:45
【问题描述】:

我有 Docker for Windows,切换到 Docker 工具箱,现在又回到 Docker for Windows,我遇到了 Volumes 的问题。

在卷工作正常之前,我的运行 nodemon/tsnode/CLI 监视文件的容器在源代码更改时正常重新启动,但现在它们根本没有,所以看起来来自主机的文件更改没有填充在容器中。

这是一个服务的 docker-compose:

api:
   build:
     context: ./api
     dockerfile: Dockerfile-dev
   volumes:
     - ./api:/srv
   working_dir: /srv
   links:
     - mongo
   depends_on:
     - mongo
   ports:
    - 3030:3030
   environment:
     MONGODB: mongodb://mongo:27017/api_test
   labels:
     - traefik.enable=true
     - traefik.frontend.rule=Host:api.mydomain.localhost

这个 id Dockerfile-dev

FROM node:10-alpine
ENV NODE_ENV development
WORKDIR /srv
EXPOSE 3030
CMD yarn dev // simply nodemon, working when ran from host

有人可以帮忙吗? C 盘已共享并通过docker run --rm -v c:/Users:/data alpine ls /data 正确显示文件列表进行验证。

我将非常感谢任何帮助。

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    我们在团队中使用 Docker 在 Windows 上开发 nodejs/typescript 应用程序时遇到了完全相同的问题,这一直是一个很大的痛苦。不过,老实说,Windows 通过不将更改事件传播到容器来做正确的事情(Linux 主机也不会将 fsnotify 事件传播到容器,除非更改是在容器内进行的)。所以底线:我不认为这个问题是可以避免的,除非您实际更改容器中的文件而不是在 docker 主机上更改它们。您可以使用 docker-sync 之类的代码同步工具来实现此目的,请参阅此页面以获取可用选项列表:https://github.com/EugenMayer/docker-sync/wiki/Alternatives-to-docker-sync

    因为我们长期在这些问题上苦苦挣扎,我和一位同事开始了一个名为 DevSpace CLI 的开源项目:https://github.com/covexo/devspace

    DevSpace CLI 可以在本地文件夹和开发容器中的文件夹之间建立可靠且超快速的 2 向代码同步(适用于任何 Kubernetes 集群、任何卷,甚至适用于临时/非持久文件夹),它是旨在与 nodemon 等热重载工具完美配合。在一些公共云上使用一键安装程序设置 minikube 或集群,在您的项目中运行devspace up,您将准备好在您的 DevSpace 中进行编程,而不必担心本地 Docker 问题和热重载问题。让我知道它是否适合您,或者您是否缺少任何东西。

    【讨论】:

      【解决方案2】:

      我最近陷入了困境(2020 年 2 月,Docker Desktop 2.2),基本解决方案没有任何帮助。

      但是,当我尝试 WSL 2 并从 Ubuntu shell 中运行我的 docker-compose 时,它变成了立即获取文件中的更改。因此,如果有人观察到这一点 - 尝试从 WSL 2 升级 Docker。

      【讨论】:

        猜你喜欢
        • 2016-01-25
        • 1970-01-01
        • 1970-01-01
        • 2019-10-08
        • 2020-01-12
        • 2014-07-06
        • 1970-01-01
        • 1970-01-01
        • 2016-11-18
        相关资源
        最近更新 更多