docker 停靠项目不会在浏览器中显示更改

n1bvdmb6  于 2022-11-22  发布在  Docker
关注(0)|答案(2)|浏览(181)

我使用以下命令停靠了我的react应用:

docker build -t image-name .

docker run -e CHOKIDAR_USEPOLLING=true -v %cd%\src:/app/src -p 3000:3000 --name container-name image-name

问题是,当我保存组件中的任何更新时,它们不会显示在浏览器中,尽管它们已经在/app/src中更新了。
我以为-e CHOKIDAR_USEPOLLING=true可以解决这个问题,但它没有。
当我走到:docker exec -it container-name bash。我可以看到所有内容都正确保存,但在ctrl + s之后,更改没有显示在浏览器中。
当我打开localhost:3000时,有一个弹出式Compiled with problems,因为我有一些 typescript 警告,但当我关闭它时,网站工作得很好,但没有更新。
我的Dockerfile:

FROM node
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

.停靠忽略:

node_modules
Dockerfile
.git
.gitignore
.dockerignore
.env

Docker日志:

(node:26) [DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning: 'onAfterSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:26) [DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning: 'onBeforeSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.

节点版本19.0.1

jdzmm42g

jdzmm42g1#

我修复了它。您需要更新scripts/start中package.json中的这一行:

"scripts": {
    "start": "WATCHPACK_POLLING=true react-scripts start",
  },

但如果你有一个大的前端更新延迟将是可怕的(像几秒钟,每次保存和更新)

fnatzsnv

fnatzsnv2#

我认为你的版本仍然是旧的。你可能需要在Docker UI中删除旧的版本,运行新的版本,然后运行Docker映像。

相关问题