首页 > 解决方案 > 如何将 express 和 react 应用程序堆叠在一起,然后在 docker 中运行

问题描述

我四处搜索但运气不佳,或者可能是因为我太菜鸟,但我在 github 上在线进行了这个项目,https://github.com/bradtraversy/react_express_starter,我试图让它可以与 docker 一起运行,但它似乎不想工作,在 docker 终端中它说服务器已启动并且反应应用程序位于 localhost:3000 但是当我将它粘贴到浏览器中时没有任何显示,甚至没有服务器和api是可访问的,所以我认为它必须与docker文件有关。我将dockerfile放在项目文件夹中。

我的 dockerfile 说

FROM node:latest
WORKDIR /app
COPY package.json ./
RUN npm install
CMD npm run client-install
COPY . .
EXPOSE 3000
CMD npm run dev

我通过“docker build -t project”构建它。然后使用“docker run -p 5000:5000 project”运行它

先感谢您

发生的事情的屏幕截图

编辑:好的,我已经让服务器工作了,事实证明docker机器有另一个ip而不是localhost,所以端口5000和api调用一样工作,但是反应部分没有出现在端口3000上?

标签: node.jsreactjsexpressdockerdockerfile

解决方案


看起来您将 EXPOSE 作为您的 dockerfile 的一部分。这可以在之前完成

CMD npm run dev

像这样

EXPOSE 3000


推荐阅读