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