`cp` vs `rsync` vs 更快的东西
`cp` vs `rsync` vs something faster
我正在使用 Docker 并且 Docker 无法将 COPY
符号链接文件放入图像中。但是符号链接的文件不在 'build context' 中。所以我打算用 cp 将它们复制到构建上下文中,但这真的很慢。有没有什么方法可以在磁盘上的两个不同位置共享文件,而不必复制它们并且不使用符号链接?
这是不允许的,也不会
https://github.com/moby/moby/issues/1676
We do not allow this because it's not repeatable. A symlink on your machine is the not the same as my machine and the same Dockerfile would produce two different results. Also having symlinks to /etc/paasswd would cause issues because it would link the host files and not your local files.
如果你有每个容器都需要的公共文件,那么我会将它们全部放在共享映像中并使用 docker 多构建选项
FROM mysharedimage as shared
FROM alpine
COPY --from=shared /my/common/stuff /common
....
同样仍然不是最优雅的解决方案,但是,因为当您 docker 构建时,当前上下文被压缩并发送到 docker 守护程序,软链接将不起作用。
您可以创建硬链接,但硬链接会指向 inode,并且不会向您显示它们指向的文件。其他软链接会告诉您它们指向的位置,但构建不会发送它们。
ln /source/file /dest/file
所以你的电话真的是你想做什么,你想怎么做。
我正在使用 Docker 并且 Docker 无法将 COPY
符号链接文件放入图像中。但是符号链接的文件不在 'build context' 中。所以我打算用 cp 将它们复制到构建上下文中,但这真的很慢。有没有什么方法可以在磁盘上的两个不同位置共享文件,而不必复制它们并且不使用符号链接?
这是不允许的,也不会
https://github.com/moby/moby/issues/1676
We do not allow this because it's not repeatable. A symlink on your machine is the not the same as my machine and the same Dockerfile would produce two different results. Also having symlinks to /etc/paasswd would cause issues because it would link the host files and not your local files.
如果你有每个容器都需要的公共文件,那么我会将它们全部放在共享映像中并使用 docker 多构建选项
FROM mysharedimage as shared
FROM alpine
COPY --from=shared /my/common/stuff /common
....
同样仍然不是最优雅的解决方案,但是,因为当您 docker 构建时,当前上下文被压缩并发送到 docker 守护程序,软链接将不起作用。
您可以创建硬链接,但硬链接会指向 inode,并且不会向您显示它们指向的文件。其他软链接会告诉您它们指向的位置,但构建不会发送它们。
ln /source/file /dest/file
所以你的电话真的是你想做什么,你想怎么做。