我有以下内容docker-compose.yml
version: '3.7'
services:
xxx:
container_name: xxx
image: xxx
volumes:
- config:/some_mountpoint
user: 1000:1000
volumes:
config: # <- this volume
我如何指定为哪个用户config
将创建卷,即安装点权限?
没有指定这些权限/some_mountpoint
属于root:root
容器内。
据我所知 - 你不能。我想您必须创建一个自定义入口点,您可以在其中设置所需的权限。
类似的东西(这是docker-entrypoint.sh):
#!/bin/bash
set -e
user=dev
user_id=${USER_ID:-1000}
if ! id "${user}" > /dev/null 2>&1; then
useradd -u ${user_id} -m -s /bin/bash ${user} > /dev/null 2>&1
fi
mount_path=/some_mountpoint
mount_path_owner=$(ls -ld ${mount_path} | awk '{print $3}')
if [ "${user}" != "${mount_path_owner}" ]; then
chown -R ${user}:${user} ${mount_path}
fi
exec gosu ${user} "${@}"
还需要gosu https://github.com/tianon/gosu在你的容器中。
So your docker-compose.yml可能看起来像这样:
version: '3.7'
services:
xxx:
entrypoint: ./docker-entrypoint.sh # <- use the custom entrypoint
container_name: xxx
image: xxx
volumes:
- config:/some_mountpoint
volumes:
config: # <- this volume
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)