Docker 与子目录组合并实时重新加载

2024-03-30

我使用创建了一个应用程序创建反应应用程序 https://github.com/facebookincubator/create-react-app并设置 docker compose 以设置容器并启动应用程序。当应用程序位于根目录时,应用程序启动并且实时重新加载工作。但是,当我将应用程序移动到子目录时,我可以启动应用程序,但实时重新加载不起作用。

这是工作设置:

Dockerfile

FROM node:7.7.2

ADD . /code

WORKDIR /code

RUN npm install

EXPOSE 3000

CMD npm start

docker-compose.yml

version: "2"

services:
  client:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/code

目录结构

app
- node_modules
- docker-compose
- Dockerfile
- package.json
- src
- public

这是我想要的结构:

app
- server
- client
  / node_modules
  / Dockerfile
  / package.json
  / src
  / public
- docker-compose.yml

我已经尝试了我能想到的所有变体,但实时重新加载不起作用。

我要做的第一件事是更改构建位置:

version: "2"

services:
  client:
    build: ./client
    ports:
      - "3000:3000"
    volumes:
      - .:/code

然后我在尝试运行时遇到错误docker-compose up:

npm ERR! enoent ENOENT: no such file or directory, open '/code/package.json'

所以我把音量改为- .:/client/code并重建并运行命令,应用程序启动,但没有实时重新加载。

无论如何,当应用程序位于子目录中时要执行此操作吗?


路径没有区别inside移动本地目录时的容器。所以你只需要更改本地引用即可。

卷安装应该来自./client

version: "2"

services:
  client:
    build: ./client
    ports:
      - "3000:3000"
    volumes:
      - ./client:/code
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 与子目录组合并实时重新加载 的相关文章

随机推荐