使用 tmpfs 挂载的 Docker BuildKit 构建第二次失败

时间:2021-04-17 18:50:54

标签: docker docker-build tmpfs docker-buildkit

这有效:

# note: cache .cache/go-build across docker builds
RUN --mount=type=tmpfs,target=/home/myuser/.cache \
    pacman -S --needed --noconfirm go &&                                \
    su - myuser -c "                                                   \
        my GO build goes here" &&                                           \
    pacman -Rcsn --noconfirm go

非 root 用户 myuser 能够写入 tmpfs 挂载并且 GO 构建成功完成。

但是如果我在前面加上,dockerfile 中的另一条指令会挂载相同的 tmpfs,例如

RUN --mount=type=tmpfs,target=/home/myuser/.cache \
    ls -Al

然后令人惊讶的是 GO 构建失败了

#18 42.37 failed to initialize build cache at /home/myuser/.cache/go-build: mkdir /home/myuser/.cache/go-build: permission denied

tmpfs 挂载似乎在第二次挂载时没有适当的权限。有人有同样的经历吗?是bug吗?

0 个答案:

没有答案
相关问题