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

我在Windows Home上使用docker-toolbox。 我可以运行jekyll-serv Web服务器图像来查看浏览器上的默认页面,但是当我尝试在VS Code上编辑文件时,刷新浏览器后看不到更改。

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


复制步骤:

首先,我已将此repository克隆到我的c:/Users/shaharshokrani/udemy-docker-mastery/bind-mount-sample1中(我可以在'cmder'控制台上看到ls的文件)。

然后我可以使用以下命令运行此image

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

docker container run -p 80:4000 --name 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,但刷新浏览器后看不到更改。


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

即使检查中的Mounts看起来也不错:

"Mounts": [
    {
        "Type": "bind","Source": "/c/users/shaharshokrani/udemy-docker-mastery/bindmount-sample-1","Destination": "/site","Mode": "","RW": true,"Propagation": "rprivate"
    }
],

图像dockerfileCMD具有--force_polling标志。

两个图像(bretfisher/jekyll-servebretfisher/jekyll)都是最新的。

docker container logs -f myjekyll看起来不错:

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
MYLIFEA 回答:Docker绑定安装-在浏览器上看不到更改

问题已识别

绑定安装实际上不适用于docker工具箱:

  主机的已安装文件夹中的

文件更改事件不会传播到   Docker for Windows的容器

解决方案

此脚本旨在解决此问题:docker-windows-volume-watcher


旁注

这是在容器外部操作数据的常见问题。

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

https://github.com/jekyll/jekyll-watch/issues/17

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

https://jekyllrb.com/docs/configuration/options/


在基于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来编辑文件。

本文链接:https://www.f2er.com/3062704.html

大家都在问