1

这有效:

# 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 挂载似乎在第二次挂载时没有适当的权限。有人有同样的经历吗?这是一个错误吗?

4

0 回答 0