【发布时间】:2021-05-04 01:16:38
【问题描述】:
我有一个 ECS Fargate 容器,该容器运行具有非 root 权限的 nodejs 应用程序,并且还安装到容器内 /.user_data 上的 EFS。
我遵循了this AWS 教程。我的设置几乎相似。
这是 Docker 文件:
FROM node:12-buster-slim
RUN apt-get update && \
apt-get install -y build-essential \
wget \
python3 \
make \
gcc \
libc6-dev \
git
# delete old user
RUN userdel -r node
# Run as a non-root user
RUN addgroup "new_user_group" && \
useradd "new_user" --gid "new_user_group" \
--home-dir "/home/new_user"
RUN git clone https://github.com/test-app.git /home/new_user/app
RUN chown -R new_user:new_user_group /home/new_user
RUN mkdir -p /home/new_user/.user_data
RUN chown -R new_user:new_user_group /home/new_user/.user_data
RUN chmod -R 755 /home/new_user/
WORKDIR /home/new_user/app
RUN npm install
RUN npm run build
EXPOSE 1880
USER new_user
CMD [ "npm", "start" ]
当 Node 应用程序尝试在 /.user_data 中写入时,我收到读写权限被拒绝错误。
如果我以 root 身份运行容器,则应用能够读取/写入数据。
我尝试使用 UID 和权限向 EFS 添加访问点,但这也没有帮助。
请注意:Dockerfile 在我的本地机器上运行良好。
【问题讨论】:
标签: node.js docker amazon-ecs aws-fargate amazon-efs