cbrousse
cbrousse

Reputation: 31

Docker volume lost files rights in container?

Here is my docker-compose.yml :

    version: '2'
services:
    backgestionpersonne_TEST_CBS:
        image: my-registry.compagny.com/my_repo/TEST_CBS:${TAG_VERSION}
        container_name: TEST_CBS
        restart: always
        ports:
           - 5555:80
        networks:
           - traefik
        volumes:
           - '/etc/pki/ca-trust/source/anchors/cert_Subordinate_CA.pem:/usr/local/share/ca-certificates/cert_Subordinate_CA.pem'
           - '/etc/pki/ca-trust/source/anchors/cert_Root_CA.pem:/usr/local/share/ca-certificates/cert_Root_CA.pem'
           - '/etc/pki/ca-trust/source/anchors/cert.pem:/usr/local/share/ca-certificates/cert.pem'

networks:
    traefik:
        external:
            name: traefik
        

When I am in the container, I've got this missing rights with ?????????? :

root@2ce5b349fc30:/app# ls -ail /usr/local/share/ca-certificates/
ls: cannot access '/usr/local/share/ca-certificates/cert_Subordinate_CA.pem': Permission denied
ls: cannot access '/usr/local/share/ca-certificates/cert_Root_CA.pem': Permission denied
ls: cannot access '/usr/local/share/ca-certificates/cert.pem': Permission denied

total 0
18302330 drwxr-xr-x. 1 root root 105 Aug  1 14:24 .
  890135 drwxr-xr-x. 1 root root  29 Jul 12 13:53 ..
       ? -?????????? ? ?    ?      ?            ? cert_Subordinate_CA.pem
       ? -?????????? ? ?    ?      ?            ? cert_Root_CA.pem
       ? -?????????? ? ?    ?      ?            ? cert.pem

Do you know why this docker volume lost rights when I am inside the container ?

(I have the exact same docker-compose.yml file on another server, and the volume doesn't lose rights in it.)


When I use this volume, it works :

   - '/tmp/tmp/cert_Subordinate_CA.pem:/usr/local/share/ca-certificates/cert_Subordinate_CA.pem'
   - '/tmp/tmp/cert_Root_CA.pem:/usr/local/share/ca-certificates/cert_Root_CA.pem'
   - '/tmp/tmp/cert.pem:/usr/local/share/ca-certificates/cert.pem'

Here is rights on both directories :

[root@svprd1148 ~]# ls -ail /tmp/tmp/
total 12
17379249 drwxr-xr-x. 2 root root   89 Jul 20 20:29 .
16777288 drwxrwxrwt. 9 root root  138 Aug  4 04:05 ..
18033843 -rw-r--r--. 1 root root 1578 Jun 17 11:41 cert_Root_CA.pem
18033827 -rw-r--r--. 1 root root 1125 Jun 17 10:20 cert_Subordinate_CA.pemm
18033836 -rw-r--r--. 1 root root 1588 Jun 17 10:19 cert.pem

and

[root@svprd1148 ~]# ls -ail /etc/pki/ca-trust/source/anchors/
total 32
   45589 drwxr-xr-x. 2 root root  188 Aug  1 16:21 .
50341743 drwxr-xr-x. 4 root root   80 Jul 20 20:23 ..
   51155 -rw-r--r--. 1 root root 1125 Jun 17 10:20 cert_Subordinate_CA.pem
   51156 -rw-r--r--. 1 root root 1578 Jun 17 11:41 cert_Root_CA.pem
 4691079 -rw-r--r--. 1 root root 1588 Jun 17 10:19 cert.pem

And I've got "permission denied" when I try to make a "chmod 777 -R /usr/local/share/ca-certificates/" inside the container

Upvotes: 1

Views: 612

Answers (1)

cbrousse
cbrousse

Reputation: 31

I found the solution here : Permission denied on accessing host directory in Docker

It's necessary to add :Z at the end of each volume.

volumes:
       - '/etc/pki/ca-trust/source/anchors/cert_Subordinate_CA.pem:/usr/local/share/ca-certificates/cert_Subordinate_CA.pem:Z'
       - '/etc/pki/ca-trust/source/anchors/cert_Root_CA.pem:/usr/local/share/ca-certificates/cert_Root_CA.pem:Z'
       - '/etc/pki/ca-trust/source/anchors/cert.pem:/usr/local/share/ca-certificates/cert.pem:Z'

works !

Upvotes: 2

Related Questions