如何将地方图书馆纳入build设?
我有这样的目录结构:
app/ inc/ www/
其中inc/
包含应用程序和www通用的代码。 为应用程序创build一个图像我做的:
cd app docker build .
所以构build的上下文是app/
的内容。 当然, inc/
的代码将从应用中丢失,并且会中断
谷歌search我已阅读的build议,我应该:
docker build -f app/Dockerfile .
其中包括inc/
(好),但也包括一切(坏),如WWW
要解决问题,我将不得不build立一个脚本,将inc/
的内容复制到app/
,执行构build和删除app/inc/
。 但是这很混乱,实际上,我不能这样做,因为我想要docker-compose来做我的构build。
推荐的方法是什么?
但也包括一切(坏)如www
这是一个.dockerignore
文件可以派上用场的地方:声明www/
。
在docker CLI将上下文发送到
.dockerignore
守护程序之前,它将在上下文的根目录中查找名为.dockerignore
的文件。
如果此文件存在,CLI会修改上下文以排除与其中的模式匹配的文件和目录。这有助于避免不必要地将大型或敏感文件和目录发送到守护程序,并可能使用
ADD
或COPY
将它们添加到图像。
包装docker构build或docker组成产生正确的.dockerignore
将是现在的理想。
最终,每个版本应该能够指定自己的dockerignore
文件。
见问题12886 。
然而:
这个function被搁置,等待正在研究/正在进行的其他更改。 其中之一是在发送构build上下文时使构build器变得“更智能”; 见#31829 。