У меня проблема с запуском Docker compose с приложением React Router и приложением Express JS.
Они оба отлично работают с npm & npm run start et c, но мой файл composer, похоже, вызывает проблемы при попытке их запустить.
Моя папка структурирована следующим образом:
project
docker-compose.yaml
- src
- frontend
Dockerfile
- src
app.js //React App stuff here
- backend
Dockerfile
- src
app.js //express.js router etc here
В моем docker составьте YAML У меня есть:
version: '3'
services:
frontend:
container_name: frontend
build: ./src/frontend
volumes:
- './src/frontend:/frontend'
- '/frontend/node_modules'
ports:
- '3000:3000'
environment:
- NODE_ENV=development
backend:
build: ./src/backend
volumes:
- ./src/backend:/backend
- /backend/node_modules
ports:
- 8000:8000
container_name: backend
И мой внешний Dockerfile
# base image
FROM node:12.2.0-alpine
# set working directory
WORKDIR /frontend
# add `/app/node_modules/.bin` to $PATH
ENV PATH /frontend/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /frontend/package.json
RUN npm install
RUN npm install react-scripts@3.0.1 -g
# start app
EXPOSE 3000
CMD ["npm", "start"]
и мой внутренний Dockerfile
FROM node:10
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm ci --only=production
# Bundle app source
COPY . .
EXPOSE 8000
CMD [ "node", "src/index.js" ]
Проблема, с которой я сталкиваюсь, заключается в следующем: ошибка: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
Что не имеет смысла.
Любая помощь здесь будет принята с благодарностью.