Docker:Web服务器没有从安装的React应用程序中检索更改



我有一个简单的React应用程序,我想在能够在主机中编辑的同时,从Docker容器链接并提供服务。

镜像是从下面的Dockerfile构建的,但从未重建过,因为它的想法是测试挂载并自动查看更改。

FROM node:14.16.0-alpine3.13
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . . 
EXPOSE 3000
CMD ["npm", "start"]

我使用以下命令运行容器:

docker run -d -p 5001:3000 -v "$(get-location):/app" --name=binded react-app

我可以证实;安装";发生这种情况是因为如果我对index.html进行一个小的更改,并在文件运行时使用并行的exec命令从容器中检查文件,我就能看到更新的版本。

问题是,当我在浏览器中使用http://localhost:5001/访问应用程序时,我没有得到最新版本。我从容器为run的那一刻起就得到了版本,之后没有任何更改。如果我运行另一个容器,我将获得最新版本,但同样只到那个时间点,不会反映对文件的进一步更新。

顺便说一句,为了测试,我正在编辑<title>标签,我自己也在刷新页面(而不是谈论热重新加载(。

那么,在容器中运行的服务器从哪里检索文件呢?我该怎么做才能始终从服务器上获得最新版本的应用程序?

我终于解决了。问题是,由于nodemon没有对装载文件中的任何更改做出反应,服务器没有自动重新启动。

解决方案是使用参数-L运行nodemon以启用旧版监视,然后按预期重新启动并进行更改。

最新更新