首页 > 解决方案 > docker-compose up 在 mac 上需要很多时间,但在 windows 上运行良好

问题描述

我从我的 docker-compose.yml 文件启动了三个服务。一个 React 前端,一个 node js 后端和一个 mongodb 服务。它在 Windows 上启动并运行得非常好,但在 mac 上需要很多时间,大多数时候它会抛出 http 超时错误。

我的 docker-compose 文件-

version: "2"
services:
  client:
    build:
      context: ./react-ui
      args:
        NPM_TOKEN: $NPM_TOKEN
    environment:
      - CHOKIDAR_USEPOLLING=true
      - NPM_TOKEN=${NPM_TOKEN}
    ports:
      - "3001:3001"
    volumes:
      - /app/node_modules
      - ./react-ui:/app
  server:
    command: yarn dev -- -L
    build:
      context: ./server
    restart: always
    environment:
      - CHOKIDAR_USEPOLLING=true
      - NODE_ENV=development
      - MONGODB_URI=mongodb://mongodb:27017/react-node-project
    ports:
      - "3000:3000"
    volumes:
      - /app/node_modules
      - ./server:/app
    depends_on:
      - mongodb
  mongodb:
    image: mongo
    ports:
      - "27017:27017"

我的反应 dockerfile -

FROM node:alpine

ARG NPM_TOKEN

ENV NPM_TOKEN=${NPM_TOKEN}

WORKDIR "/app"
COPY ./package.json ./
COPY ./.npmrc . 
RUN  yarn install
COPY . .
CMD ["yarn", "start"]

我的服务器 dockerfile -

FROM node:8.11

EXPOSE 3000

ARG NODE_ENV
ENV NODE_ENV $NODE_ENV

WORKDIR /app
COPY ./package.json .
RUN yarn install
COPY . .

CMD ["yarn", "docker:start"]

docker:start 脚本确实nodemon ./src/index.js

我已确保在我的 .dockerignore 文件中添加 node_modules。此外,客户服务专门为 mac 花费了大量时间。也许我在那里写错了一些东西,这花了很多时间。

我在 2-3 台 mac 机器上试过,行为是一样的。

标签: node.jsreactjsdockerdocker-compose

解决方案


推荐阅读