Docker-compose声明卷时出现错误,’no such file or directory, open ‘/app/package.json’

34次阅读
没有评论

问题描述

在使用Docker和Docker-Compose进行实验时,遇到了以下错误:enoent ENOENT: no such file or directory, open '/app/package.json'。用户怀疑这与在Docker Compose中声明卷有关,如果删除卷,一切都正常工作。用户还在尝试解决这个问题。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据用户的描述,这个问题与Docker Compose中声明的卷有关。用户提到他的PC防火墙阻止Docker访问本地驱动器,因此他需要重置’Docker for Desktop’应用程序中的共享驱动器凭据。以下是解决这个问题的步骤:
1. 打开’Docker for Desktop’应用程序。
2. 导航到共享驱动器部分。
3. 重置共享驱动器凭据,确保正确共享了所需的Windows驱动器(通常是C:/或D:/)。
4. 重新启动Docker服务。
5. 再次尝试运行Docker Compose命令,检查问题是否解决。

方案2

如果方案1无效,您可以尝试以下步骤:
1. 确保当前目录中存在package.json文件。
2. 检查您的Docker Compose文件的缩进是否正确。在Compose文件中,空格和缩进非常重要。
3. 尝试在Docker Compose文件中使用双引号来指定源文件名,例如"./app:/app"
4. 确保您的Docker Compose文件中的卷路径是正确的,并且与您的本地文件系统中的路径匹配。

如果以上解决方案都无效,可能是您的机器存在其他问题。您可以尝试在其他机器上运行相同的Docker Compose文件,以确定问题是否与您的机器有关。

方案3

如果您使用的是Windows机器,并且在Git Bash中运行Docker命令时出现问题,可以尝试在命令前加上winpty前缀,例如winpty docker run -it --rm -v "$(pwd):/app" busybox ls -l /app

请注意,这些解决方案可能因您的具体情况而有所不同。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您解决问题。

方案4

如果您的PC防火墙阻止Docker访问本地驱动器,您可以尝试在防火墙设置中添加例外规则,允许Docker访问所需的驱动器。具体步骤可能因防火墙软件的不同而有所不同,请参考您使用的防火墙软件的文档或支持页面。

方案5

如果您的机器上存在其他问题,可能需要对您的机器进行进一步的故障排除。您可以尝试重新安装Docker,更新操作系统或与Docker社区寻求帮助。

请注意,这些解决方案可能需要一些技术知识和经验。如果您不确定如何执行这些步骤,请寻求专业人士的帮助。

以上是解决这个问题的几种可能方案。根据您的具体情况选择适合您的解决方案,并尝试解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您解决问题。

正文完