【问题标题】:Developing react app via docker container通过 docker 容器开发 React 应用程序
【发布时间】:2019-08-01 09:12:13
【问题描述】:

我正在尝试开发一个简单的 react 应用程序,并且我正在尝试使用 docker 来运行开发服务器,但它没有在浏览器中连接

这里是 Dockerfile.dev

FROM node:alpine

WORKDIR /app

COPY package.json .
RUN npm install

COPY . .

CMD ["npm", "run", "start"]

EXPOSE 3000

这是创建和运行容器的两个命令

docker build -f Dockerfile.dev .
docker run -p 3000:3000 <image_id>

它像正常的 npm start 一样启动了一个开发服务器,但它没有在浏览器中运行 localhost:3000

【问题讨论】:

  • 你能分享你的npm run start 命令的输出吗?
  • 您的应用程序是否在端口 3000 上运行?
  • 你在使用 Docker 工具箱吗?
  • @DavidMaze 是的,我正在使用 Docker Toolbox。
  • 如果您使用的是 Docker Toolbox,请尝试192.168.99.100:3000(或docker-machine ip 返回的任何 IP 地址)。它运行一个单独的 VM,localhost 无法访问它。

标签: reactjs docker


【解决方案1】:

如果您没有提及-it-dit(如果不是错字),您的容器将存在。立即停止的原因是因为 bash 找不到要分配的任何伪终端。您必须指定 -it-dit 以便将 bash 或 sh 分配给伪终端。

docker run --name test -p 3000:3000 <image_id>

如果你运行docker ps | grep test,你会在输出中看到

"/bin/bash" {some} seconds ago Exited (0) {some} seconds ago

现在尝试运行

docker run --name test -dit -p 3000:3000 <image_id>

docker run --name test -it -p 3000:3000 <image_id>

很高兴localhost:3000

更新:

对于窗口,docker toolbox 遵循以下步骤。

点击相应的机器(可能是标有“默认”的机器) 设置

  • 网络 > 适配器 1 > 高级 > 端口转发
  • 单击“+”添加一个 新规则集主机端口 3000 和访客端口 3000;一定要离开Host IP 和访客 IP 为空

运行命令:

docker run -dit -p 3000:3000 ${image_id}

docker-toolbox-localhost

【讨论】:

  • 还是不行,顺便说一下,我在windows上用的是docker toolbox。
  • 好的,这是 docker 工具箱的问题,这里是您问题的答案stackoverflow.com/questions/42866013/…
  • 已更新,请检查或关注问题以进行进一步调查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 2020-02-13
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多