2025年4月21日 星期一

ECS Fargate 在 non-root 環境下使用 MountPoints

在 Fargate 預設使用 MountPoints 去利用 ephemeral storage 作為兩個 container 之間分享資源的手段時,可能會遇到如果 container 本身是 non-root user 的話,會導致無法寫入 ephemeral storage 的問題。

這是因為 Fargate 的 ephemeral storage 預設只能夠被 root 寫入。而這個問題,目前能夠做的 workaround 如下,基本上是在 Dockerfile 中,將要作為 ephemeral storage 的目錄設定為 VOLUME,就可以保留路徑內的資料不會被 bind mount 遮蓋,而且也會有權限可以讀寫該路徑。

USER node
RUN touch /var/log/exported/examplefile
VOLUME ["/var/log/exported"]

詳情可以參考 GitHub issue

沒有留言: