Colima无法识别Docker容器内的文件更改[已关闭]

fnatzsnv  于 2023-03-17  发布在  Docker
关注(0)|答案(1)|浏览(292)

**已关闭。**此问题为not about programming or software development。当前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题有关,您可以留下评论,说明在何处可以回答此问题。
6天前关闭。
Improve this question
我在macOS(Ventura)的M1芯片上运行多个Docker容器,其中一个是应用容器,另一个是文件监视器。我在Colima中运行容器,因为容器内的应用无法在M1 ARM64架构上运行。
只有当我在colima sshtouch一个文件时,文件监视器才会启动。
我解决这个问题的方法是尝试在VS代码中使用SSH连接Colima示例,我尝试过在VS代码中使用SSH连接Colima示例,但无法确定输入什么作为密码。

8oomwypt

8oomwypt1#

底座

我在Mac OS Ventura 13.1(22 C65)和Intel i9处理器上也遇到了同样的问题。使用sshfsvirtiofs挂载类型时观察器不工作,但我通过将类型更改为9p修复了问题。您可以使用colima status检查挂载类型。
如果不是9p-您需要重新挂载卷。只需通过执行colima stopcolima start --mount-type 9p重新启动VM(如果需要,请不要忘记添加其他参数)。只要您不执行colima delete,您的数据(如Docker映像和容器)将保持不变。
在我的测试中,使用QEMU或VZ没有区别。

文件系统事件

如果您想在VM或Docker容器中测试文件系统事件,可以使用像chokidar(Node.JS)这样的监视器。

const chokidar = require('chokidar');
const watchDir = './src';

const watcher = chokidar.watch(watchDir, {
  ignored: /(^|[\/\\])\../, // ignore dotfiles
  persistent: true
});

watcher
  .on('add', path => console.log(`File ${path} has been added`))
  .on('change', path => console.log(`File ${path} has been changed`))
  .on('unlink', path => console.log(`File ${path} has been removed`));

Colima通过导入~/.colima/ssh_config文件在~/.ssh/config中创建新的主机声明。
如果要使用SSH连接,则不需要密码,因为使用了来自lima配置的IdentityFile(~/.lima/_config/user)。
由于这些配置,可以使用ssh colima访问VM而无需密码。或者,您可以使用colima ssh,如果colima中有多个概要文件,则可以使用-p标记指定概要文件。例如:colima ssh -p default_vz

相关问题