node.js - 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.js - Firebase 函数在 firebase 部署中工作,但在本地不工作
- regex - 只匹配两个组合并忽略 REGEX 中的其余组合 - 画面
- c++ - 用于转换多个参数的模板函数
- aspnetboilerplate - Asp.net Core 2.2 app.UseHttpsRedirection() 未定义
- python-3.x - 使用正则表达式提取数据
- node.js - NodeJS SSH2未进行身份验证,定义了已知主机
- python - 为什么必须实例化 matplotlib.animation.FuncAnimation 才能工作?
- c# - 尝试创建一个 lambda 以将 linq 中的日期过滤到具有附加完整检查的实体
- html - 我可以将 html 网站功能作为后台程序吗?
- php - 在 PHP 应用程序中出现两个错误