Can I change owner of directory that is mounted on volume in IBM containers?

后端 未结 3 892
攒了一身酷
攒了一身酷 2020-12-06 18:25

I\'m trying to launch postgres in IBM containers. I have just created volume by:

$ cf ic volume create pgdata

Then mount it:



        
3条回答
  •  臣服心动
    2020-12-06 18:56

    In IBM Containers, the user namespace is enabled for docker engine. When, the user namespace is enabled, the effective root inside the container is a non-root user out side the container process and NFS is not allowing the mapped non-root user to perform the chown operation on the volume inside the container. Please note that the volume pgdata is a NFS, this can verified by executing mount -t nfs4 from container.

    You can try the workaround suggested for How can I fix the permissions using docker on a bluemix volume?

    In this scenario it will be

    1. Mount the Volume to `/mnt/pgdata` inside the container
    
    cf ic run --volume pgdata:/mnt/pgdata -p 22 registry.ng.bluemix.net/ruimo/pgsql944-cli
    
    2. Inside the container
    
    2.1 Create "postgres" group and user    
    groupadd --gid 1010 postgres
    useradd --uid 1010 --gid 1010 -m --shell /bin/bash postgres
    
    2.2 Add the user to group "root"
    adduser postgres root
    chmod 775 /mnt/pgdata
    
    2.3 Create pgsql directory under bind-mount volume
    su -c "mkdir -p /mnt/pgdata/pgsql" postgres
    ln -sf /mnt/pgdata/pgsql /var/pgsql
    
    2.2 Remove the user from group "root"
    deluser postgres root
    chmod 755 /mnt/pgdata
    

提交回复
热议问题