【问题标题】:After adding volumes to docker-compose, changes are not being picked up for frontend files将卷添加到 docker-compose 后,不会为前端文件拾取更改
【发布时间】:2021-10-15 02:49:48
【问题描述】:

所以我在我使用的烧瓶中按预期工作......

    volumes:
      - ./api:/app

我在api 中更改的任何文件都会被正在运行的会话拾取。我想对前端代码做同样的事情。

对于 node/nginx,我使用了以下配置。获取文件更改的唯一方法是重建。我希望像对 python 所做的那样提取文件更改,但对于为什么类似的设置不适用于 src 文件有点卡住了。有人知道为什么会这样吗?

本地路径结构

public\
src\
Dockerfile.client
docker--compose.yml

码头文件...

FROM node:16-alpine as build-step
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY ./src ./src
COPY ./public ./public
RUN yarn install
RUN yarn build


FROM nginx:alpine
COPY --from=build-step /app/build /usr/share/nginx/html
COPY nginx/nginx.conf /etc/nginx/nginx.conf

码头工人撰写

  client:
    build:
      context: .
      dockerfile: Dockerfile.client
    volumes:
      - ./src:/src
    restart: always
    ports:
      - "80:80"
    depends_on:
      - api

【问题讨论】:

  • 除了重建图像之外,您的问题还不是很清楚。应该通过简单地从现有映像重新创建容器来获取卷更改(例如,不使用像 docker-compose up -d --force-recreate 这样的命令进行重建)
  • 我添加了一些更清晰的文本 - 我希望我在本地进行的更改/点击保存被拾取,因为它目前对我对本地 api 文件夹中的文件所做的更改进行了烧瓶.我已经为clientsrc 完成了相同类型的卷挂载,但文件更改没有被拾取

标签: node.js docker nginx docker-compose dockerfile


【解决方案1】:

这是因为您正在构建应用程序。

...
RUN yarn build
...

他们使用您的构建文件夹:

FROM nginx:alpine
COPY --from=build-step /app/build /usr/share/nginx/html

我相信您正在寻找的是实时重新加载。你可以找到一个很好的例子here

但基本上你需要的是这样的Dockerfile

# Dockerfile
# Pull official Node.js image from Docker Hub
FROM node:12
# Create app directory
WORKDIR /usr/src/app
# Install dependencies
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
# Expose container port 3000
EXPOSE 3000
# Run "start" script in package.json
CMD ["npm", "start"]

你的 npm 启动脚本:

 "start": "nodemon -L server/index.js"

还有你的音量:

    volumes:
      - ./api:/usr/src/app/serve

【讨论】:

  • 试一试对 nginx 的引用 - 你是说需要改变还是保持原样也没关系?
  • 仅供开发使用,我认为没有必要使用nginx。我只是将它用于生产
  • 是的,我只是根据我正在使用的一些存储库边学习边学习。我会让 nginx 继续生产
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 2019-08-10
  • 2019-06-10
  • 1970-01-01
相关资源
最近更新 更多