Elastic Beanstalk上的Node Docker容器找不到本地Gulp

我正在尝试部署一个单一的docker容器弹性beanstalk和我的运行命令gulp gulp production && node server.js 。 Docker不断抛出错误Local gulp not found in /app/user ... try running npm install gulp 。 我已经尝试列出我的package.json文件中的gulp作为depDependecy和devDependecy,但是这并不能解决问题。 我也试图在我的Dockerfile中全局安装gulp。

有人能告诉我我的设置有什么问题吗? 这是我的文件:

Dockerfile

 FROM node:6.5.0 # Internally, we arbitrarily use port 3000 ENV PORT 3000 # Create some needed directories RUN mkdir -p /app/user/ WORKDIR /app/user/ # setup path ENV PATH /app/user/node_modules/.bin:$PATH RUN npm install -g gulp # Install vim RUN apt-get update && apt-get --yes --force-yes install vim # Setup app ADD package.json /app/user/ RUN cd /app/user && npm install # ADD . /app/user/ EXPOSE 3000 CMD gulp production && node server.js 

Dockerrun.aws.json

 { "AWSEBDockerrunVersion": "1", "Logging": "/var/log/pm2", "Volumes": [ { "HostDirectory": "/var/app/current", "ContainerDirectory": "/app/user" } ] } 

那么对于那些可能会遇到类似问题的人来说,这里是我的Dockerfile和Dockerrun.aws.json文件,用于将节点容器部署到弹性beanstalk

Dockerfile

 FROM node:6.5.0 # Internally, we arbitrarily use port 3000 ENV PORT 3000 # Create some needed directories RUN mkdir -p /app/user/ WORKDIR /app/user/ # setup path ENV PATH /app/user/node_modules/.bin:$PATH RUN npm install -g gulp RUN npm install gulp # Install vim RUN apt-get update && apt-get --yes --force-yes install vim # Setup app ADD package.json /app/user/ RUN cd /app/user && npm install ADD . /app/user/ EXPOSE 3000 CMD gulp production && node server.js 

Dockerrun.aws.json

 { "AWSEBDockerrunVersion": "1", "Logging": "/var/log/pm2", "Volumes": [] }