【问题标题】:Docker does not persists the NodeJS app's volume mounted dataDocker 不会保留 NodeJS 应用程序的卷挂载数据
【发布时间】:2021-09-11 06:58:15
【问题描述】:

我不确定我做错了什么。我已经在 StackOverflow 中查看了另一篇类似的帖子,但我看不出问题出在哪里。

这是我的 docker-compose 文件:

  ## APP
  nodeServer:
    build:
      context: .
      dockerfile: ./config/node-express/Dockerfile
    image: node-mysql-app
    restart: unless-stopped
    stdin_open: true
    tty: true
    ports:
      - 3000:3000
      - 8745:8745
    volumes:
      - .:/home/dockeruser/src
      # - node_modules:/home/dockeruser/src/node_modules

    depends_on:
      - mysqldb
      
    restart: unless-stopped

 volumes: 
   node_modules:

还有我的 Dockerfile

FROM node:14.4-alpine3.11

RUN apk add --no-cache python g++ make
ENV NODE_ENV=development
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --production 
RUN apk update && apk add bash


RUN addgroup -g 1010 -S docker && \
     adduser -u 1010 -S dockuser -G docker

USER dockuser
COPY . /home/dockuser/src
WORKDIR /home/dockuser/src

EXPOSE 3000 8745
CMD ["/bin/sh", "entrypoint.sh"]

我在应用程序根目录中运行 docker-compose.yml 文件,这意味着我拥有所有应用程序代码。 docker 文件在这个路径中:

dockerfile: ./config/node-express/Dockerfile

运行后,应用程序在 3000 端口上运行良好,我可以执行容器并查看代码,但如果我更改主机中的某些内容,则容器不会更新。我也看不到运行 Dockerfile 时创建的 node_modules:

"docker-compose build --no-cache"

"docker-compose up"

首先,我总是删除容器和卷以防万一。

【问题讨论】:

    标签: docker persist volumes


    【解决方案1】:

    我通过这些更改解决了问题。

    Dockefile:

    WORKDIR /usr/src/app
    COPY . .
    

    docker-compose.yml

     volumes:
          - .:/usr/src/app
    

    我不确定原因,但它有效。

    【讨论】:

      猜你喜欢
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 2021-11-29
      • 2021-07-16
      • 2016-08-18
      • 1970-01-01
      相关资源
      最近更新 更多