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

已提問 3 年前檢視次數 1117 次
1 個回答
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

已回答 3 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南