【发布时间】:2020-05-08 14:33:17
【问题描述】:
我按照https://mherman.org/blog/dockerizing-a-react-app/下的步骤操作
我的设置:
- Windows 10 家庭版
- docker 命令在 Docker 快速入门终端中运行https://docs.docker.com/toolbox/toolbox_install_windows/
如何重现:按照第一个链接中的步骤操作:
全局安装 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
但是,当我按照帖子中的描述访问 localhost:3001 时,我看到了
知道我遗漏了什么吗?
【问题讨论】:
-
如果您使用 Docker Toolbox,您需要将浏览器指向
docker-machine ip地址(通常为 192.168.99.100);localhost不起作用。 -
@DavidMaze 谢谢,我不知道这可能会导致问题。然而,当我指向那个地址(它确实是你命名的那个)时,仍然有上面的结果。我可以以某种方式指定应用程序吗?
-
我通过升级到 Windows 10 Pro 并使用 Docker Desktop 解决了这个问题......抱歉,无法进一步帮助您。