在 AWS ElasticBeanstalk 中启动 Node.js 容器的权限错误
Posted
技术标签:
【中文标题】在 AWS ElasticBeanstalk 中启动 Node.js 容器的权限错误【英文标题】:Permission error launching Node.js container in AWS ElasticBeanstalk 【发布时间】:2019-06-15 07:39:46 【问题描述】:我是使用 AWS 和容器的新手,尝试在 ElasticBeanstalk 上启动 dockerized Node 应用程序时遇到了问题。我可以在多台本地机器上本地运行这个容器,没有任何问题。我真的不确定我应该在哪里解决这个问题。
这是来自 AWS 的错误:
docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”/\“:权限被拒绝”:未知。
在故障排除中,我尝试通过 CircleCI 推送它并遇到了这个问题:
mkdir: 无法创建目录‘/home/node/app’: 权限被拒绝 以代码 1 退出
是否需要在我缺少的地方设置权限标志?
我的 Dockerfile:
FROM node:8.15.0-jessie
WORKDIR /home/node/app
COPY package*.json ./
RUN npm install
COPY . ./
EXPOSE 3000
CMD ["npm", "start"]
我的 Docker-compose.yml
version: "3"
volumes:
app_node_modules:
services:
app:
build: .
user: "node"
volumes:
- ./:/home/node/app
- app_node_modules:/home/node/app/node_modules/
ports:
- "3000:3000"
任何帮助将不胜感激。
【问题讨论】:
您如何设置您的 EB 环境? 我完成了环境创建并将其设置为 Web 服务器环境,以 Docker 作为平台。然后我上传了我的应用程序的压缩版本,删除了 node_modules 文件夹以避免任何可能的问题。 【参考方案1】:RUN chown -R root:root /home/node/app/node_modules/
将此添加到您的 DOCKER 文件中
【讨论】:
以上是关于在 AWS ElasticBeanstalk 中启动 Node.js 容器的权限错误的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS 上使用 ElastiCache 和 ElasticBeanstalk 配置 Redis
从在 ElasticBeanstalk 中运行的 Flask 应用程序使用 AWS
如何在 AWS elasticbeanstalk 上部署 symfony 3 项目