Dockercompose Node.js 重启

问题描述 投票:0回答:1

我在使用 NODE.JS 映像运行多级 docker-compose 时遇到一些问题。 当构建/运行多阶段 docker-compose 时,Node 容器会在循环中重新启动,但是如果我使用具有以下参数的 Docker Run 来构建相同的映像,则它可以正常工作

Docker 运行:

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

它在 docker compose 文件中的阶段是:

  web:
    build:
      context: ./web/
      dockerfile: ./Dockerfile
    container_name: webportal
    volumes:
        - .:/app
        - /app/node_modules
    ports:
        - '3001:3000'
    environment:
        - CHOKIDAR_USEPOLLING=true

文件夹结构如下

Root
├── docker-compose.yml
├── api
|   ├── Other Folders...
│   ├── Dockerfile
│   └── Jenkinsfile
├── web
│   ├── debug.log
│   ├── docker-compose.yml
│   ├── Dockerfile
│   ├── Dockerfile-test
│   ├── Jenkinsfile
│   ├── node_modules
│   ├── package.json
│   ├── package-lock.json
│   ├── public
│   ├── README.md
│   ├── src
│   └── tsconfig.json
└──

节点 Dockerfile:

FROM node:lts
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
RUN npm install
RUN npm install [email protected] -g --silent
COPY . ./
EXPOSE 3000
CMD ["npm", "start"]

检查日志时,我看到以下内容

> [email protected] start /app
> react-scripts start
ℹ 「wds」: Project is running at http://172.26.0.2/
ℹ 「wds」: webpack output is served from 
ℹ 「wds」: Content not from webpack is served from /app/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...
node.js docker docker-compose
1个回答
0
投票

为了避免在运行后使用 docker-compose 退出来构建 docker 容器,我在 docker compose 中添加了“stdin_open: true”,现在工作正常

© www.soinside.com 2019 - 2024. All rights reserved.