在我的 Dockerfile 中,我有以下内容:
COPY . /var/task
Run Code Online (Sandbox Code Playgroud)
...它将我的应用程序代码复制到图像中。
vendor/执行此复制时我需要排除该目录。
vendor/到.dockerignore,因为当使用RUN composer install.我已尝试以下操作,但出现以下错误:
COPY [^vendor$]* /var/task
Run Code Online (Sandbox Code Playgroud)
当对多个源文件使用 COPY 时,目标必须是一个目录并以 / 结尾
COPY [^vendor$]*/ /var/task
Run Code Online (Sandbox Code Playgroud)
复制失败:未指定源文件
实际上将vendor目录添加到文件中就足够了.dockerignore。
docker build您可以大致分三个阶段跟踪文件流:
docker build从您指定的目录中读取文件,忽略文件中的内容.dockerignore,并将它们作为构建上下文发送到 Docker 守护进程。COPY指令将文件从构建上下文复制到容器文件系统中。RUN指令做进一步的转换或处理。如果您放入vendor该.dockerignore文件,则会阻止该目录包含在构建上下文中。构建速度会更快一些,并且COPY不会将文件复制到映像中。它不会阻止稍后的步骤在映像中RUN composer install创建自己的目录。vendor
| 归档时间: |
|
| 查看次数: |
6339 次 |
| 最近记录: |