0 1 How to set permission on Volume mount

0

In my CDK app I have an ElasticSearch docker that starts on an EC2 instance and on start up it cannot write to the host path's Volume mount point directory which I set to /mnt/data/elasticsearch/ so the container stops,
The reason is the permissions on the directory when the instance is starts is 755. When I SSH into the instance and change it to 777 the container starts up and continues on without issue.

This is how I create the volume and mount point

 import software.amazon.awscdk.services.ecs.Volume  
  
 auto_scaling_groupp.addUserData("sudo chmod -R 777  /usr/share/elasticsearch/data);` // This has no effect   
  
 Volume hostVolume =  Volume.builder().name("elasticsearch").host(Host.builder()  
                         .sourcePath(/mnt/data/elasticsearch).build()).build();  
   
MountPoint elasticSrvrMntPt = MountPoint.builder().readOnly(false).sourceVolume(hostVolume.getName())  
                .containerPath("/usr/share/elasticsearch/data").build();  
  
ElasticDef.addMountPoints(elasticSrvrMntPt);  

I cannot find in the API how to either give permission to that container or change the permission on the folder
Thanks

Edited by: sdiventura on Apr 9, 2021 2:16 PM

posta 3 anni fa1117 visualizzazioni
1 Risposta
0

The reason is because I was using a bind mounts to mount at container, By default, the volume permissions are set to 0755 and the owner as root. The permissions would need be changed in the Elastic Dockerfile. Instead I used Volume to mount the host dir
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bind-mounts.html

con risposta 3 anni fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande