macos - 连续失败的 docker 构建会累积磁盘使用量,看起来像是空间泄漏
问题描述
当尝试使 Dockerfile 工作时,每次失败的构建都会累积磁盘使用量,很快我发现自己no space left on device
一直都在这样做。
例子:
# docker disk usage is currently =~ 0Gb / 70Gb available
$ docker build .
# failed (for some irrelevant reason)
# docker disk usage is now e.g. 20Gb / 70Gb available
# -> edit the Dockerfile and try again
$ docker build .
# failed (for some irrelevant reason)
# docker disk usage is now e.g. 40Gb / 70Gb available
# -> edit the Dockerfile and try again
$ docker build .
# failed (for some irrelevant reason)
# docker disk usage is now e.g. 60Gb / 70Gb available
# -> edit the Dockerfile and try again
$ docker build .
# failed (no space left on device)
即使我docker rm
和docker rmi
一切,没有什么会使磁盘使用率下降。删除未使用的卷docker volume prune
也docker volume ls -qf dangling=true | xargs -r docker volume
无济于事。
我怎样才能:
- 降低磁盘使用率并能够重新启动
docker build .
? - 首先避免这种磁盘使用积累?
--
遵循一些可能无关紧要的细节:
在 macOS BigSur 上使用 Docker Desktop v3.3.1(引擎 20.10.5)。
Dockerfile:
FROM fpco/stack-build:lts-17.12 as dependencies
RUN mkdir /opt/myproject
WORKDIR /opt/myproject
COPY ./stack.yaml .
COPY ./package.yaml .
RUN stack update && stack upgrade
RUN stack build --test --no-run-tests --dependencies-only
FROM fpco/stack-build:lts-17.12 as builder
WORKDIR /opt/myproject
COPY --from=dependencies /root/.stack /root/.stack
COPY . .
RUN stack build --test
RUN mv "$(stack path --local-install-root --system-ghc)/bin" /opt/myproject/build
FROM ubuntu:latest as deploy
RUN mkdir -p /opt/myproject
WORKDIR /opt/myproject
COPY --from=builder /opt/myproject/bin .
解决方案
推荐阅读
- angular - 无法在 Angular 7 应用程序中运行自定义 Angular 7 元素包
- r - R:根据两个不同的变量创建 ID
- excel - 标准排序/索引
- r - 如何加入变量以访问 R 中的列表?
- python - 竞赛大厅准备 a20j 运行时错误
- php - 如何将用户输入与数据库 laravel 中的数据进行比较
- r - 错误代码 100 在 r 中使用 fitdist 拟合 exp 分布
- excel - 如何将 ifblank 添加到当前公式
- javascript - Markercluster spiderfy - 地图最大缩放级别显示标记图标组而不是带有计数的集群视图
- python-3.x - Python 请求 | 如何保持登录会话?