【发布时间】:2021-11-05 05:30:43
【问题描述】:
我正在尝试使用 docker 运行一个简单的命令,该命令读取我的主目录中的一个文件,并在我的本地机器上的同一目录中写入一个输出文件 (/home/userxyz/projects/data)。 data 文件夹属于我 (userxyz) 和我的同名 (userxyz) 组,具有 R/W 权限。
我用这样的 Dockerfile 构建了一个映像(遵循How to add users to Docker container?):
FROM osgeo/gdal:alpine-small-latest
RUN mkdir /usr/tmp
RUN addgroup -S userxyz \
&& adduser -S -D -h /usr/tmp userxyz userxyz \
&& chown -R userxyz:userxyz /usr/tmp
USER userxyz
WORKDIR /usr/tmp
和:
docker build -t userxyz/test .
我用以下方式运行 docker:
docker run --rm -v /home/userxyz/projects/data:/usr/tmp userxyz/test gdal_translate -ot UInt32 /usr/tmp/input.tif /usr/tmp/output.tif
但是,我仍然得到:
ERROR 4: Attempt to create new tiff file `/usr/tmp/output.tif' failed: Permission denied
当我只读取文件时它可以工作:
docker run --rm -v /home/userxyz/projects/data:/usr/tmp userxyz/test gdalinfo /usr/tmp/input.tif
知道写权限有什么问题吗?
编辑:当打开数据文件夹以读取/写入“其他”时,该文件是由user#500100 正确创建的,所以我猜它与用户名归属有关?如何使文件由userxyz 而不是user#500100 创建?
【问题讨论】:
标签: docker