Я могу запустить свое приложение реакции локально (либо на windows и linux), набрав в консоли
npm run
, но когда я пытаюсь запустить его в контейнере docker, оно запускается и прослушивает порт 3001, но когда я открываю приложение через браузер, у меня появляется следующая ошибка (с ответом на внутреннюю ошибку сервера):
TypeError: Path must be a string. Received undefined
at assertPath (path.js:28:11)
at Object.join (path.js:1236:7)
at noopServiceWorkerMiddleware (/app/node_modules/react-dev-utils/noopServiceWorkerMiddleware.js:14:26)
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/app/node_modules/express/lib/router/index.js:317:13)
at /app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
at next (/app/node_modules/express/lib/router/index.js:275:10)
at launchEditorMiddleware (/app/node_modules/react-dev-utils/errorOverlayMiddleware.js:20:7)
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/app/node_modules/express/lib/router/index.js:317:13)
at /app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
at next (/app/node_modules/express/lib/router/index.js:275:10)
at handleWebpackInternalMiddleware (/app/node_modules/react-dev-utils/evalSourceMapMiddleware.js:42:7)
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
мой docker файл:
# base image
FROM node:12.2.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /app/package.json
RUN npm uninstall -g jest
RUN npm install -g jest
RUN npm cache clean --force
RUN npm install
RUN npm install --silent
RUN npm install react-scripts@3.4.0 -g --silent
# start app
CMD ["npm", "start"]
и мой пакет . json file
{
"name": "randevou-react",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.4.0",
"@testing-library/user-event": "^7.2.1",
"@types/react-router": "^5.1.4",
"react": "^16.12.0",
"react-datepicker": "^2.12.1",
"react-dom": "^16.12.0",
"react-router-dom": "^5.1.2",
"react-scripts": "^3.4.0",
"typescript": "^3.7.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
я запускаю контейнер, набрав
docker run -d -v /app -v /app/node_modules -p 3001:3000 --rm randevoureact
в контейнере, у меня версия узла 8.10.0, а у меня npm версия 5.6.0 i ' я совершенно новичок ie в докерах и внешних проблемах
я не знаю, является ли это важным, но я использую реагирующий маршрутизатор в моем приложении реакции, может кто-нибудь мне помочь: (?