Docker绑定装载-在浏览器上看不到更改

Docker绑定装载-在浏览器上看不到更改,docker,jekyll,Docker,Jekyll,我正在windows home上使用docker工具箱。 我可以运行jekyll serve web服务器映像以查看浏览器上的默认页面,但当我尝试在VS代码上编辑文件时,在刷新浏览器后看不到更改 知道刷新后为什么看不到更改吗? 复制步骤: 首先,我已经将其克隆到我的c:/Users/shaharshokrani/udemy docker mastery/bind-mount-sample1(我能够在“cmder”控制台上查看带有ls的文件) 然后,我可以使用以下工具运行此操作: docker

我正在windows home上使用docker工具箱。 我可以运行jekyll serve web服务器映像以查看浏览器上的默认页面,但当我尝试在VS代码上编辑文件时,在刷新浏览器后看不到更改

知道刷新后为什么看不到更改吗?


复制步骤: 首先,我已经将其克隆到我的
c:/Users/shaharshokrani/udemy docker mastery/bind-mount-sample1
(我能够在“cmder”控制台上查看带有
ls
的文件)

然后,我可以使用以下工具运行此操作:

docker run-v//c/users/shaharshokrani/udemy docker mastery/bindmount-sample-1:/site bretfisher/jekyll new.

docker容器运行-p80:4000——名称myjekyll-v//c/users/shaharshokrani/udemy docker mastery/bindmount-sample-1:/site bretfisher/jekyll serve

我可以在
http://192.168.99.100/

我已尝试使用VS Code编辑和保存此2017-03-05-welcome-to-jekyll.markdown,但刷新浏览器后我看不到更改


我还检查了虚拟机的共享网络-它显示
c:/users/

即使是inspect上的
挂载
看起来也不错:

"Mounts": [
    {
        "Type": "bind",
        "Source": "/c/users/shaharshokrani/udemy-docker-mastery/bindmount-sample-1",
        "Destination": "/site",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
    }
],
Bundle complete! 4 Gemfile dependencies, 28 gems now installed.
Bundled gems are installed into `/usr/local/bundle`
Configuration file: /site/_config.yml
            Source: /site
       Destination: /site/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 1.031 seconds.
 Auto-regeneration: enabled for '/site'
    Server address: http://0.0.0.0:4000/
  Server running... press ctrl-c to stop.
图像的
CMD
具有
--force\u polling
标志

这两个图像(
bretfisher/jekyll-serve
bretfisher/jekyll
)都是最新的

docker容器日志-f myjekyll看起来不错:

"Mounts": [
    {
        "Type": "bind",
        "Source": "/c/users/shaharshokrani/udemy-docker-mastery/bindmount-sample-1",
        "Destination": "/site",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
    }
],
Bundle complete! 4 Gemfile dependencies, 28 gems now installed.
Bundled gems are installed into `/usr/local/bundle`
Configuration file: /site/_config.yml
            Source: /site
       Destination: /site/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 1.031 seconds.
 Auto-regeneration: enabled for '/site'
    Server address: http://0.0.0.0:4000/
  Server running... press ctrl-c to stop.

Docker版本:

Client:
 Version:       18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24302
 Built: Fri Mar 23 08:31:36 2018
 OS/Arch:       windows/amd64
 Experimental:  false
 Orchestrator:  swarm

Server: Docker Engine - Community
 Engine:
  Version:      19.03.3
  API version:  1.40 (minimum version 1.12)
  Go version:   go1.12.10
  Git commit:   a872fc2f86
  Built:        Tue Oct  8 01:01:20 2019
  OS/Arch:      linux/amd64
  Experimental: false
 containerd:
  Version:      v1.2.10
  GitCommit:            b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:      1.0.0-rc8+dev
  GitCommit:            3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:      0.18.0
  GitCommit:            fec3683
确定的问题 绑定安装实际上不适用于docker toolbox:

主机的已装入文件夹中的文件更改事件不会传播到 用于Windows的Docker容器

解决方案 此脚本旨在解决此问题:


旁注 这是在容器外部处理数据时的常见问题

特别是对于jekyll,即使是下面问题中描述的解决方案也不适用于基于windows的系统

简而言之,您需要使用
--force_polling
标志执行jekyll(不适用于Windows主机)。你可以在这里的jekyll文档中找到它


在基于Linux的系统上,它是开箱即用的,因为问题
bretfisher/jekyll serve
中使用的映像已经使用了
--force_polling
标志

就跑

docker run --rm -it -e JEKYLL_NEW=true -p 8080:4000 -v (pwd):/site bretfisher/jekyll new . 
创建新的jekyll站点和

docker run --rm -it -e JEKYLL_NEW=true -p 8080:4000 -v (pwd):/site bretfisher/jekyll-serve                                                  

要运行它,请将其安装到我的机器(linux)上的目录中,并能够编辑一个文件,其中的更改将传播到jekyll。

只需提出一些想法:您是否在容器中进行了检查,在本地系统上更改文件后,这些文件将被更新?e、 g.通过容器中的
docker exec
?杰基尔的最新版本?如果图像不是最新的,请尝试将其更新为最新的jekyll版本。容器日志中有什么吗?对我有用,我更新了答案,你指的是什么变化?嘿@clemens kaserer我更新了问题。。。1.当我刷新浏览器时,在
log-follow
上看不到任何新的日志条目,这正常吗?2.我不知道如何使用docker exec更新文件,我将研究一下。看一看似乎只与Windows和Linux容器相关: