首页 > 解决方案 > 连续失败的 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 rmdocker rmi一切,没有什么会使磁盘使用率下降。删除未使用的卷docker volume prunedocker volume ls -qf dangling=true | xargs -r docker volume无济于事。

我怎样才能:

--

遵循一些可能无关紧要的细节:

在 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 .

标签: macosdockermacos-big-surdocker-desktop

解决方案


推荐阅读