我无法运行我的reactjs应用程序的docker容器

nou*_*air 3 docker webpack-dev-server create-react-app

我是 Docker 新手,我尝试运行create-react-app图像的容器,因此这些是我已完成的步骤:

  1. npx create-react-app frontend

  2. 我创建了Dockerfile.dev如下所示:

    FROM node:alpine
    WORKDIR '/app'
    COPY package.json .
    RUN npm install
    COPY . . 
    CMD ["npm" , "run" , "start"]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我使用此命令来构建图像:

    docker build -f Dockerfile.dev .
    
    Run Code Online (Sandbox Code Playgroud)
  4. 当我使用提供的图像 ID 运行容器时:

    docker run -p 3000:3000 my_docker_image_id
    
    Run Code Online (Sandbox Code Playgroud)

正如此屏幕截图所示,什么也没有发生。

但是,当我将-i参数添加到命令中时,一切正常,如以下屏幕截图所示

docker run -p 3000:3000 -i my_docker_image_id
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

nou*_*air 5

React-scripts 3.4.1版本有问题,

所以我添加了一个 docker-compose 文件,并指定了这一行来解决问题并节省我的时间:

stdin_open: true 
Run Code Online (Sandbox Code Playgroud)

所以我的 docker-compose.yml 文件如下所示:

version : '3'
services:
    web:
        build: 
            context: .
            dockerfile: Dockerfile.dev
        stdin_open: true    
        ports:
            - "3000:3000"
        volumes:
            - /app/node_modules
            - .:/app     
Run Code Online (Sandbox Code Playgroud)