我一直在尝试使用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'.
1条答案
按热度按时间icnyk63a1#
这里的问题是这部分中的Docker卷挂载语法:-v /usr/app/node_modules。Docker期望卷挂载语法的格式为:,但在您的命令中,似乎缺少容器目录路径。
您已经将当前目录($(pwd))挂载到容器中的/usr/app中。你不应该将node_modules挂载到容器中,因为当你从dockerfile中运行npm run install命令时,会创建node_modules目录。最好的解决方案是在dockerfile所在的位置创建
.dockerignore
文件,并将node_modules添加到忽略列表中,就像.dockerignore
文件一样。之后,您可以运行以下命令来启动容器。
我建议学习多阶段构建和
dockerignore
。只要谷歌它的节点或任何框架,你正在使用。