在我们的项目中,我们有包含 docker 配置和其他常用内容的项目目录以及每个服务的文件夹。由于我们在 dockerfiles 中使用常见的东西,我们需要将上下文设置为根文件夹,但随后 docker 将所有上下文发送到 docker deamon,大约 3 GB,这需要一些时间,尤其是当它为每个服务这样做时。
是否有选项可以让它直接使用我的本地文件系统? 或者是否有任何替代解决方案来构建不发送上下文的 OCI 容器?
最佳答案
我过去使用的一种方法是专门为 Docker 创建临时构建树。这可能看起来像
mkdir build/docker
cp Dockerfile build/docker
cp -a project-a/target/app_a build/docker
cp -a common/docker/etc build/docker
docker build -t me/project-a build/docker
rm -rf build/docker
现在上下文目录正是您所需要的,不多也不少,您的 Dockerfile 可能非常简单。
(实际上,当我这样做时,我使用 Makefile 构建了主机上下文目录,并且这种方法可能需要某种程度的构建自动化。)
关于docker - 如何在不发送上下文的情况下构建docker镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526872/