获取 vite React docker 容器来同步卷和自动启动开发环境?

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

我无法将我的 docker 容器同时连接到同步卷自动启动开发环境

为了实现卷同步,允许对容器外部代码的更改反映在容器内部(运行时),反之亦然;我在 docker-compose.yml 中使用了以下内容:

volumes:
 - ./frontend:/frontend

仅当我的 Dockerfile 不包含以下内容时才有效:

CMD ["npm", "run", "dev"]

如果

CMD
行存在,我会收到以下错误:

sh: vite: not found

如果没有

CMD
,我可以执行到容器中并手动运行命令,但我的目标是让它自动启动。如果 docker-compose.yml 文件不包含卷映射,则自动启动
CMD
会成功运行。

我承认我对 JS(和 React)和 docker 都是全新的,所以我可能错过了一些关键信息。非常乐意提供任何要求的东西。 SO 中还有其他几个看似相似的线程,但可惜每个问题似乎都是独一无二的;我无法确定我的问题来自哪里;本质上就是为什么它找不到 vite 命令。

谢谢,

想要成为开发者

javascript reactjs docker docker-compose vite
1个回答
0
投票

您可以使用 Docker Compose 的新功能

watch
来执行此操作:

services:
  frontend:
    build:
      context: frontend/
    ports:
      - 5173:5173
    depends_on:
      - app
    develop:
      watch:
        - action: sync
          path: ./frontend/
          target: /frontend
          ignore:
            - node_modules

然后,当您运行 docker 命令时,请使用:

docker compose up --watch

有关参考,请参阅 Docker Compose Watch 的官方文档:https://docs.docker.com/compose/how-tos/file-watch/

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