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