Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel laradock上的npm安装不工作_Laravel_Docker_Npm_Npm Install_Laradock - Fatal编程技术网

Laravel laradock上的npm安装不工作

Laravel laradock上的npm安装不工作,laravel,docker,npm,npm-install,laradock,Laravel,Docker,Npm,Npm Install,Laradock,我使用Laradock创建了一个Laravel项目。当我运行npm安装时,我得到以下输出 > node-sass@4.9.0 install /var/www/npmtest/node_modules/node-sass > node scripts/install.js fs.js:119 throw err; ^ Error: EINVAL: invalid argument, open '/var/www/npmtest/node_modules/node-

我使用Laradock创建了一个Laravel项目。当我运行npm安装时,我得到以下输出

> node-sass@4.9.0 install /var/www/npmtest/node_modules/node-sass
> node scripts/install.js

fs.js:119
    throw err;
    ^

Error: EINVAL: invalid argument, open '/var/www/npmtest/node_modules/node-sass/package.json'
    at Object.openSync (fs.js:443:3)
    at Object.readFileSync (fs.js:348:35)
    at Object.Module._extensions..json (internal/modules/cjs/loader.js:719:20)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Module.require (internal/modules/cjs/loader.js:650:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (/var/www/npmtest/node_modules/node-sass/lib/extensions.js:7:9)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
npm WARN rollback Rolling back is-fullwidth-code-point@1.0.0 failed (this is probably harmless): ENOTEMPTY: directory not empty, rmdir '/var/www/npmtest/node_modules/gauge/node_modules/is-fullwidth-code-point'
npm WARN rollback Rolling back is-fullwidth-code-point@1.0.0 failed (this is probably harmless): ENOTEMPTY: directory not empty, rmdir '/var/www/npmtest/node_modules/sass-graph/node_modules/is-fullwidth-code-point'
npm WARN rollback Rolling back chalk@1.1.3 failed (this is probably harmless): ENOTEMPTY: directory not empty, rmdir '/var/www/npmtest/node_modules/node-sass/node_modules/chalk'
npm WARN rollback Rolling back string-width@1.0.2 failed (this is probably harmless): ENOTEMPTY: directory not empty, rmdir '/var/www/npmtest/node_modules/gauge/node_modules/string-width'
npm WARN rollback Rolling back chalk@1.1.3 failed (this is probably harmless): ENOTEMPTY: directory not empty, rmdir '/var/www/npmtest/node_modules/har-validator/node_modules/chalk'
npm WARN rollback Rolling back assert-plus@1.0.0 failed (this is probably 

基本上,它无法运行npm install命令。如果我在docker之外创建Laravel项目,它将非常有效。有人知道这是为什么吗?

我也遇到了与laradock相同的问题,尽管我没有使用NPM的解决方案。使用
纱线安装应该可以工作
我没有足够的知识知道为什么会发生这种情况,但我希望它能有所帮助:)

尝试重建工作区容器:

docker-compose build workspace

我也遇到了这个问题。我不知道这个问题是什么时候出现的,因为我相信我以前能够在这个项目上运行
npm install
,但我总是可能使用
warn install
(这似乎很有效)

然而,我们正在尝试使用npm,所以我需要让它工作起来

网上有一个与此相关的问题。问题似乎在于使用CIFS 3.02而不是CIFS 2.0装载卷时。Laradock正在为卷使用绑定装载,看起来它们默认为3.02

我不是docker专家,因此可能有更好的方法,但我能够找到如何更新
docker compose.yml
以使用CIFS 2.0创建卷的方法,它为我解决了这个问题

卷:
部分下,添加一个新卷。您可以将其命名为任何名称,但现有定义的卷除外。我打电话给我的
code

Laradock version>=7.0.0:docker compose.yml文件使用版本3,顶级
卷:
部分在文件顶部附近定义

Laradock version<7:docker compose.yml
文件使用版本2,顶级
卷:
部分在文件底部定义

不幸的是,由于此卷定义不在构建上下文中,因此需要对代码路径进行硬编码;您将无法使用
APP\u code\u PATH\u HOST
变量(或<7中的
APPLICATION

您的
卷:
部分将如下所示:

volumes:
  mysql:
    driver: ${VOLUMES_DRIVER} (or "local")
  percona:
    driver: ${VOLUMES_DRIVER} (or "local")
  [other volumes removed for brevity...]
  code:
    driver: "local"
    driver_opts:
      type: cifs
      device: //10.0.75.1/C/path/to/your/code/
      o: "rw,relatime,vers=2.0,sec=ntlmsspi,cache=strict,username=[your user name],password=[your password],domain=[your domain, if any; otherwise remove this],uid=0,noforceuid,gid=0,noforcegid,addr=10.0.75.1,file_mode=0755,dir_mode=0755,iocharset=utf8,nounix,serverino,mapposix,nobrl,mfsymlinks,noperm,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1"
您需要使用代码路径更新
设备:
选项,并且需要更新
o:
选项以填写用户名、密码和域。您可以在
.env
文件中创建变量,并在此处使用这些变量

定义新卷后,您需要更新
工作区
服务以使用新卷

Laradock version>=7.0.0:在
卷:
部分中,为您的
工作区
服务,将
${APP\u code\u PATH\u HOST}
替换为新卷的名称(例如
code
)。您的
工作区
卷定义如下所示:

      volumes:
        - code:${APP_CODE_PATH_CONTAINER}
      applications:
        image: tianon/true
        volumes:
          - code:/var/www
Laradock版本<7:在
卷:
部分中,为您的
应用程序
服务,将
${APPLICATION}
替换为新卷的名称(例如
code
)。如果您的
应用程序
服务没有
卷:
部分,请添加它。您的
应用程序
节定义如下所示:

      volumes:
        - code:${APP_CODE_PATH_CONTAINER}
      applications:
        image: tianon/true
        volumes:
          - code:/var/www
现在,当您打开容器并登录到
工作区
容器时,应该使用CIFS 2.0装载卷。您可以通过运行
mount | grep cifs
进行验证,并查看选项中是否显示
vers=2.0


节点sass
的安装脚本现在应该能够找到package.json文件。假设您没有遇到任何其他错误,
npm安装
应该可以工作。

没有人?我是唯一得到这个的人吗?我正在Windows 10上使用Laradock。进入工作空间后,我无法从项目内部运行npm安装。“docker compose exec workspace bash”可能重复有多个带有
卷的部分:
标签,要更改/更新哪一个?@SizzlingCode I更新了答案,包括不同laradock版本的说明。我没有意识到旧的
docker compose.yml
文件有多么不同。如果仍有混乱,请告诉我。