Ter*_*how 6 linux rsync docker kubernetes minikube
我当前的开发环境允许在更改文件(即nodemon/ webpack)时自动重新加载代码。但是我正在设置一个kubernetes( minikube) 环境,以便我可以一次快速打开 3-4 个相关服务。
一切正常,但目前没有进行自动代码重新加载。我尝试安装卷,但docker与virtualbox处理文件的方式和处理方式存在一些冲突,因此冲突导致来自主机的文件更改未反映在 docker container 中。(这不是我拥有的第一个与此问题相关的链接,这只是我在另一天使用谷歌搜索时找到的第一个链接)...
无论如何,长话短说,ppl 很难在开发中完成实时重新加载。我发现这个问题在整个互联网上都存在,但解决方案很少。到目前为止,我发现的最佳解决方案是此人使用来自主机的 tar来同步文件夹。
但是我想要一个来自容器的解决方案。原因是我想从容器中运行脚本,这样开发人员就不必每次在特定的 repo 中开始开发时都在他的主机上运行一些脚本。
然而,为了做到这一点,我需要从容器到主机运行 rsync。我在弄清楚如何为此编写语法时遇到了很多令人惊讶的麻烦。
让我们假设我的应用程序分别存在于我的容器和主机中:
/workspace/app # location in container
/Users/terence/workspace/app # location in host computer
Run Code Online (Sandbox Code Playgroud)
如何从容器同步到主机?我试过使用172.17.0.17和127.0.0.1无济于事。不完全确定是否有办法做到这一点?
我试过的例子:
rsync -av 172.17.0.17:Users/terence/workspace/app /workspace/app
rsync -av 127.0.0.1:Users/terence/workspace/app /workspace/app
Run Code Online (Sandbox Code Playgroud)
如果您从主机(不在容器内)运行 rsync,则可以使用docker cp:
例如,docker cp containerName:/workspace/app Users/terence/workspace/app
您能否澄清一下:
\n1. 您是从主机还是从容器内部运行 rsync?
\n如果它来自容器内部,它将在很大程度上取决于--network容器所连接的容器(即桥接或主机)以及已安装的卷(即,当您启动容器时是否使用了 -v旗帜?)
更新:为了使 rsync 在容器内工作,您需要将主机的目录公开给容器。
\n\n当您考虑解决方案时,请记住这一点:主机目录作为数据卷
\n\n\n\n注意:主机目录本质上是依赖于主机的。因此,您可以\xe2\x80\x99t从Dockerfile挂载主机目录,VOLUME指令不支持传递主机目录,因为构建的图像应该是可移植的。主机目录\xe2\x80\x99 不适用于所有潜在主机。
\n
| 归档时间: |
|
| 查看次数: |
7781 次 |
| 最近记录: |