Amazon web services 将EFS接入点安装到ECS卷时出现问题

Amazon web services 将EFS接入点安装到ECS卷时出现问题,amazon-web-services,docker,devops,amazon-ecs,amazon-efs,Amazon Web Services,Docker,Devops,Amazon Ecs,Amazon Efs,我试图通过EFS接入点将ECS卷装载到EFS时遇到问题 任务角色是通过对该文件系统的ClientWrite、ClientRead和ClientRootAccess设置的 使用posix用户ID 1001和groupid 1001设置接入点,权限为755 群集和文件系统位于正确的VPC中 但ECS无法启动任务,出现以下错误: 来自守护程序的错误响应:无法复制的文件信息 /var/lib/ecs/volumes/{{task name}}:未能启动 /var/lib/ecs/volumes/{{ta

我试图通过EFS接入点将ECS卷装载到EFS时遇到问题

任务角色是通过对该文件系统的ClientWrite、ClientRead和ClientRootAccess设置的

使用posix用户ID 1001和groupid 1001设置接入点,权限为755

群集和文件系统位于正确的VPC中

但ECS无法启动任务,出现以下错误:

来自守护程序的错误响应:无法复制的文件信息 /var/lib/ecs/volumes/{{task name}}:未能启动 /var/lib/ecs/volumes/{{task name}

如果我在根目录中将访问点的POSIX用户ID和groupid设置为0,我就能够启动任务。但我觉得出于安全考虑,在共享FS中,这并不是最好的选择

经过一些常规搜索后,我形成了一个假设,即在装载卷之后,容器或其主机的用户从根目录更改,这会干扰Dockerfile中任何进一步的文件/目录操作。AWS接入点文件规定:

启用用户强制后,Amazon EFS将替换NFS客户端的 具有在访问点上配置的标识的用户和组ID 用于所有文件系统操作

因为我认为
/var/lib/ecs/volumes/…
实际上是容器或主机目录

我怎样才能避开这个问题


仅供参考:该任务在spot实例群集中运行,因此在这种情况下手动装载卷不是理想的解决方案

您尝试运行的Docker映像中定义的uid/gid与您尝试使用的1001/1001 uid/gid是否可能不匹配

在获取已定义卷的基本映像并尝试更改映像中主要用户的uid时,我们遇到了相同的错误。由于无法更改卷的文件所有权或权限,因此创建卷后,docker守护程序将尝试将原始uid所有权应用于已装载的EFS卷,从而导致EFS访问点阻止所有权/权限的更改


您可以通过在本地炮击docker容器或运行
docker exec
to
ls-la/path/to/container/folder
来检查这一点,并检查该文件夹的所有权是否设置为uid 1001用户。

Hi。我也面临同样的问题。我通过删除Dockerfile中的现有文件夹解决了这个问题。似乎当文件夹存在于映像中时,docker(或ECS?)希望chown/chmod/copy到目标中。。。