У меня есть приложение React, которое подключено к серверу json, который я пытаюсь запустить в контейнере Docker.Dockerfile выглядит следующим образом:
# base image
FROM node: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 install --silent
RUN npm install react-scripts@3.0.1 -g --silent
RUN npm i serve
COPY . .
# start app
CMD ["npm", "start"]
CMD ["node", "server.js"]
CMD ["serve", "-p", "3000", "-s", "."]
Сервер json выглядит следующим образом:
var jsonServer = require('json-server')
var server = jsonServer.create()
var router = jsonServer.router(require('./db.js')())
var middlewares = jsonServer.defaults()
server.use(middlewares)
server.use(router)
server.listen(8080, function () {
console.log('JSON Server is running')
})
Проблема в том, что когда я запускаю docker run -it -p 3000:3000 personal-react-website
, он говорит, что мое приложение работает на http://localhost:3000 но когда я иду туда, он ничего мне не показывает.Мне было интересно, может ли кто-нибудь помочь мне понять, почему это не так?
В моей тестовой среде мое приложение React находится на порте 3000, а сервер json - на 8080, и я просто набираю
npm start
node server.js
любой все отлично работает.