docker没有在主机

时间:2017-12-17 11:32:48

标签: javascript node.js reactjs docker docker-compose

当我运行docker-compose build时,我发现package.json中的依赖项正在容器上安装,但不在我的机器上。所以之后当我运行docker-compose up时,我得到的错误是找不到依赖关系,即:Error: Cannot find module 'express'

我的应用程序结构非常简单,如下所示:

|____frontend
| |____index.html
| |____index.js
| |____webpack.config.js
| |____yarn.lock
| |____package.json
| |____dev.Dockerfile
|____backend
| |____server.js
| |____yarn.lock
| |____package.json
| |____dev.Dockerfile
|____docker-compose.yml

我的docker-compose.yml:

version: "3.3"

services:

    frontend:
        build:
            context: .
            dockerfile: frontend/dev.Dockerfile
        volumes:
            - ./frontend:/frontend:cached
        command: yarn start

    backend:
        build:
            context: .
            dockerfile: backend/dev.Dockerfile
        volumes:
            - ./backend:/backend:cached
        command: yarn start

这是前端的Dockerfile(后端看起来一样):

FROM node:latest

WORKDIR "/frontend/"

COPY frontend/package.json frontend/package.json

COPY frontend/yarn.lock frontend/yarn.lock

RUN yarn

这个配置有什么问题?我错过了什么?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题并通过在我的docker-compose文件中的node_modules目录中添加一个匿名卷来解决它。所以docker-compose文件中的卷看起来像这样:

volumes:
  - './frontend:/frontend:cached'
  - '/frontend/node_modules'

我从this博文

中得到了这个想法