Docker容器中的空白node_modules

时间:2017-11-26 21:36:25

标签: node.js docker docker-compose

我有以下Dockerfile:

<%=  User.find(current_user.id).read_post_id << ["3","5"] %>
<%=  User.find(current_user.id).read_post_id.count %>
<%=  User.find(current_user.id).save %>

和docker-compose.yml:

FROM node:8.2.1
RUN mkdir -p /app
WORKDIR /app
COPY package.json ./package.json
RUN npm -q install
COPY . /app
RUN npm -q install nodemon babel-cli node-gyp create-react-app react-scripts babel-preset-es2015 -g

EXPOSE 3000
EXPOSE 3001
CMD ["npm", "run", "startServer"]

当我进入web_container时,我看到,node_modules文件夹是空白的。我试图改变Dockerfile中的命令顺序,但它没有帮助。我还尝试直接在容器中运行“npm install”,这是有效的,但我不想在每次构建后执行此操作。任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

我认为撰写文件中的volume命令会让你感到困惑。当你基本上用你的主机覆盖整个项目时,dockerfiles中的命令没有任何效果,因为之后安装了卷并且内容被替换了。

尝试在没有音量部分的情况下运行整个事情,你应该看到它正常工作。

您仍然可以使用这些卷,但是您需要在主机上安装node_modules。