kubernetes Docker卷问题

46scxncf  于 2023-05-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(95)

我一直在尝试使用Docker Volume来持久化我的应用程序。我是Docker的新手,我在Mac上做这个。每次我运行我的docker命令时,我都会收到一个错误,说我的workdir是“无效模式”。任何帮助都将不胜感激
这是我的docker文件

FROM node:18-alpine

WORKDIR /usr/app

COPY . .

RUN npm install

CMD [ "npm", "run", "start" ]

EXPOSE 5200

用这个运行我的图像

docker run -p 5200:5200 -it --name server -v $(pwd):/usr/app -v /usr/app/node_modules server-docker

这是我收到的错误

docker: Error response from daemon: invalid mode: /usr/app.
See 'docker run --help'.
icnyk63a

icnyk63a1#

这里的问题是这部分中的Docker卷挂载语法:-v /usr/app/node_modules。Docker期望卷挂载语法的格式为:,但在您的命令中,似乎缺少容器目录路径。
您已经将当前目录($(pwd))挂载到容器中的/usr/app中。你不应该将node_modules挂载到容器中,因为当你从dockerfile中运行npm run install命令时,会创建node_modules目录。最好的解决方案是在dockerfile所在的位置创建.dockerignore文件,并将node_modules添加到忽略列表中,就像.dockerignore文件一样。

node_modules

之后,您可以运行以下命令来启动容器。

docker run -p 5200:5200 -it --name server -v $(pwd):/usr/app server-docker

我建议学习多阶段构建和dockerignore。只要谷歌它的节点或任何框架,你正在使用。

相关问题