【发布时间】:2020-01-20 00:03:31
【问题描述】:
我有一个 React 应用程序,它连接到我试图在 docker 容器中运行的 json 服务器。 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
一切正常。
【问题讨论】:
-
为什么容器中没有全局安装服务?
标签: node.js json reactjs docker npm