【问题标题】:How to access create-react-app run in a docker container?如何访问在 docker 容器中运行的 create-react-app?
【发布时间】:2020-05-08 14:33:17
【问题描述】:

我按照https://mherman.org/blog/dockerizing-a-react-app/下的步骤操作

我的设置:

如何重现:按照第一个链接中的步骤操作:

全局安装 create-react-app:

npm install -g create-react-app@3.4.1

生成新应用:

$ npm init react-app sample --use-npm
$ cd sample

在目录根目录下创建 Dockerfile:

# pull official base image
FROM node:13.12.0-alpine

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install react-scripts@3.4.1 -g --silent

# add app
COPY . ./

# start app
CMD ["npm", "start"]

添加 .dockerignore:

node_modules
build
.dockerignore
Dockerfile
Dockerfile.prod

构建并标记 dockerimage:

$ docker build -t sample:dev .

启动容器:

$ docker run \
    -it \
    --rm \
    -v ${PWD}:/app \
    -v /app/node_modules \
    -p 3001:3000 \
    -e CHOKIDAR_USEPOLLING=true \
    sample:dev

这是我在 Docker 快速入门终端中看到的:

这是我的项目结构:

但是,当我按照帖子中的描述访问 localhost:3001 时,我看到了

知道我遗漏了什么吗?

【问题讨论】:

  • 如果您使用 Docker Toolbox,您需要将浏览器指向docker-machine ip 地址(通常为 192.168.99.100); localhost 不起作用。
  • @DavidMaze 谢谢,我不知道这可能会导致问题。然而,当我指向那个地址(它确实是你命名的那个)时,仍然有上面的结果。我可以以某种方式指定应用程序吗?
  • 我通过升级到 Windows 10 Pro 并使用 Docker Desktop 解决了这个问题......抱歉,无法进一步帮助您。

标签: reactjs docker


【解决方案1】:

当你运行容器时,像这样指定端口:3000:80(使用:80)

$ docker run -it --rm -p 3000:80 sample:prod

然后您可以导航到http://localhost:3000/ 以查看 CRA 应用。

【讨论】:

  • 结果还是一样,谢谢你的回答。
猜你喜欢
  • 2017-11-22
  • 2020-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 2020-11-09
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
相关资源
最近更新 更多