我想将我的winetricks缓存复制到docker容器中:
主办:
~/.cache/winetricks
Run Code Online (Sandbox Code Playgroud)
到集装箱
/home/myUser/.cache/winetricks.
Run Code Online (Sandbox Code Playgroud)
我当前的方法是在docker根目录中创建缓存的副本,并用于COPY
将缓存移至容器。这将使高速缓存在构建时可用。
我正在使用这种方法来节省构建时间。Docker COPY
命令在生产中已被注释掉。
所以这是我的问题:为什么我必须复制~/.cache
目录?为什么无法将目录从Docker根目录外部复制到容器中?
所以这是我的问题:为什么我必须复制我的 ~/.cache 目录?为什么我不能将 docker root 外部的目录复制到容器中?
docker build
命令的第一步是将构建上下文发送到执行构建的 docker 引擎。此引擎可能位于远程服务器上。此构建上下文通常.
位于命令行末尾,指示将当前目录作为上下文发送。
此上下文用于每个COPY
andADD
命令,上下文中未包含的任何文件对COPY
and不可用ADD
。更改行为以允许访问主机上的所有文件将破坏 docker 构建的客户端/服务器设计并引入一个安全漏洞,有人可以将恶意 Dockerfile 发送到构建服务器并使用它从服务器提取机密数据到图片。
您可以将构建上下文更改为您的主目录,而不是您的项目子目录。要做到这一点,你想也需要更新所有的COPY
和ADD
命令与相对路径$HOME
。当您的整个主目录被发送到服务器时,您还会看到明显更长的构建时间。
对于您的具体问题,有一项新功能刚刚进入实验阶段,名为BuildKit。正在实施的第一个功能之一是在RUN
命令期间挂载目录,以便您只想提取一次的打包缓存。
归档时间: |
|
查看次数: |
2228 次 |
最近记录: |