【问题标题】:Docker: Mern project page isn't loadingDocker:Mern 项目页面未加载
【发布时间】:2020-05-20 06:17:28
【问题描述】:

我正在尝试使用 Docker Toolbox 运行 MERN 项目,因为我在 Windows 机器上,但我的项目没有运行。
这是我的项目文件夹结构:

 ├───api
 │   └───Dockerfile
 ├───ui
 │   └───Dockerfile
 ├───docker-compose.yml

docker-compose.yml

 version: '2'
 services:
   ui:
     build: ./ui
     ports:
       - '3000:3000'
     depends_on:
       - api
     #command: tail -f /dev/null
   api:
     build: ./api
     ports:
       - '8080:8080'
     depends_on:
       - mongo
   mongo:
     image: mongo
     ports:
       - '27017:27017'

./ui/Dockerfile

 FROM node:8
 # Create app directory
 WORKDIR /usr/src/app
 # Install app dependencies
 COPY package*.json ./

 RUN npm install
 # Copy app source code
 COPY . .

 #Expose port and start application
 EXPOSE 3000
 CMD ["npm", "start"]

./api/Dockerfile

 FROM node:8
 # Create app directory
 WORKDIR /usr/src/app
 # Install app dependencies
 COPY package*.json ./

 RUN npm install
 # Copy app source code
 COPY . .

 #Expose port and start application
 EXPOSE 8080
 CMD [ "npm", "start" ]

当我从根目录运行 docker-compose up --build 时,一切似乎都可以正确编译,但它以 express-mongo-docker-tutorial_ui_1 exited with code 0 退出

 ...
 ...
 ...
 ui_1     |
 ui_1     | > ui@0.1.0 start /usr/src/app
 ui_1     | > react-scripts start
 ui_1     |
 ui_1     | ℹ 「wds」: Project is running at http://172.27.0.4/
 ui_1     | ℹ 「wds」: webpack output is served from
 ui_1     | ℹ 「wds」: Content not from webpack is served from /usr/src/app/public
 ui_1     | ℹ 「wds」: 404s will fallback to /
 ui_1     | Starting the development server...
 ui_1     |
 express-mongo-docker-tutorial_ui_1 exited with code 0

docker-machine ip default 打印出192.168.99.101 所以我转到192.168.99.101:3000 但我的页面没有加载

如果我这样做 docker ps 我明白了

 CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                      NAMES
 fd90ffb3323f        express-mongo-docker-tutorial_api   "docker-entrypoint.s…"   22 minutes ago      Up 22 minutes       0.0.0.0:8080->8080/tcp     express-mongo-docker-tutorial_api_1
 5ed2d070b45f        mongo                               "docker-entrypoint.s…"   22 minutes ago      Up 22 minutes       0.0.0.0:27017->27017/tcp   express-mongo-docker-tutorial_mongo_1

我尝试了将command: tail -f /dev/null 添加到我的docker-compose.yml 文件的解决方案,我确实看到了容器

 CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                      NAMES
 a1d54f603fca        express-mongo-docker-tutorial_ui    "docker-entrypoint.s…"   8 seconds ago       Up 7 seconds        0.0.0.0:3000->3000/tcp     express-mongo-docker-tutorial_ui_1
 321682880d04        express-mongo-docker-tutorial_api   "docker-entrypoint.s…"   9 seconds ago       Up 8 seconds        0.0.0.0:8080->8080/tcp     express-mongo-docker-tutorial_api_1
 d8e31d09f8e5        mongo                               "docker-entrypoint.s…"   10 seconds ago      Up 10 seconds       0.0.0.0:27017->27017/tcp   express-mongo-docker-tutorial_mongo_1

但是当我转到192.168.99.101:3000 时,我的页面仍然无法加载。我做错了什么?

【问题讨论】:

    标签: docker docker-compose docker-toolbox


    【解决方案1】:

    我想通了,我所要做的就是在我的docker-compose.yml 中添加tty:true

     ui:
      build: ./ui
      ports:
        - '3000:3000'
      depends_on:
        - api
      tty:true #<-----
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多