- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Laradock 创建了一个 Laravel 项目。当我运行 npm install 时,我得到以下输出。
> 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 WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.9.0 install: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.9.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-06-22T04_51_41_566Z-debug.log
基本上它无法运行 npm install 命令。如果我在 docker 之外创建 Laravel 项目,它会完美运行。有谁知道这是为什么吗?
最佳答案
我也遇到了这个问题。我不知道这个问题是什么时候引入的,因为我相信我以前可以在这个项目上运行 npm install
,但我总是有可能使用 yarn install
相反(这似乎有效)。
但是,我们正在尝试使用 npm,所以我需要让它正常工作。
docker for windows github repo 上有与此相关的问题.看来问题是使用 CIFS 3.02 而不是 CIFS 2.0 安装卷时。 Laradock 正在为卷使用绑定(bind)安装,看起来它们默认为 3.02。
我不是 docker 专家,所以可能有更好的方法来解决这个问题,但我能够弄清楚如何更新 docker-compose.yml
以使用创建卷CIFS 2.0,它为我解决了这个问题。
在 volumes:
部分下,添加一个新卷。您可以将其命名为任何名称,但现有定义的卷之一除外。我调用了我的 code
。
Laradock 版本 >= 7.0.0:docker-compose.yml
文件使用版本 3 和顶级 volumes:
部分在文件顶部附近定义。
Laradock 版本 <7:docker-compose.yml
文件使用版本 2,顶级 volumes:
部分定义在文件底部。
不幸的是,由于此卷定义在构建上下文之外,因此您需要对代码路径进行硬编码;您将无法使用 APP_CODE_PATH_HOST
变量(或 <7 中的 APPLICATION
)。
您的 volumes:
部分将如下所示:
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"
您需要使用您的代码路径更新 device:
选项,并且您需要更新 o:
选项以填写您的用户名、密码和域。随意在您的 .env
文件中创建变量并在此处使用它们。
定义新卷后,您需要更新 workspace
服务以使用新卷。
Laradock 版本 >= 7.0.0:在您的 workspace
服务的 volumes:
部分,替换 ${APP_CODE_PATH_HOST}
与您的新卷的名称(例如 code
)。您的 workspace
卷定义如下所示:
volumes:
- code:${APP_CODE_PATH_CONTAINER}
Laradock 版本 < 7:在 volumes:
部分为您的 applications
服务,替换 ${APPLICATION}
使用新卷的名称(例如 code
)。如果您的 applications
服务没有 volumes:
部分,请添加它。您的 applications
部分定义将如下所示:
applications:
image: tianon/true
volumes:
- code:/var/www
现在,当您启动容器并登录到您的 workspace
容器时,您的卷应该使用 CIFS 2.0 安装。您可以通过运行 mount | 来验证grep cifs
并看到它在选项中显示 vers=2.0
。
node-sass
的安装脚本现在应该可以找到 package.json 文件了。假设您没有遇到任何其他错误,npm install
应该可以正常工作。
关于laravel - npm 安装在 laradock 上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50981002/
我正在尝试在laradock内安装图像magik https://github.com/laradock/laradock 我已经设置了nginx,mysql,redis和elasticsearch。
我已经安装了Laradock,但是无法在localhost上设置多个项目进行开发。 1)克隆Laradock git repo git clone https://github.com/Laradoc
我开始将 Docker 与 Laradock 一起使用。当我运行此命令时 docker-compose up -d apache2 mysql 我收到此错误: ERROR: The Compose f
Laradock 提供两个选项:(1) 每个项目都有单独的 Docker 环境,(2) 所有项目都有一个 Docker 环境。 这两种设置有什么区别?如果我有两个项目要部署到单个 Droplet (D
我在本地计算机上设置了laradock应用程序。我已按照提供的说明进行操作: http://laradock.io/ 除此之外,就像在Windows 10上一样,并使用Docker工具箱,我还与lar
我正在使用laradock作为本地开发环境。我正在编写一个需要访问只能通过VPN访问的安全数据库的应用程序。这在我的主主机(运行MacOS 10.14)上运行良好,我可以使用其VPN网络IP(10.x
我无法理解如何让 Laradock 与 mysql 数据库一起正常工作。 我已经按照 laradock 文档安装了所有内容,使用启动容器 docker-compose up -d nginx mysq
我陷入了本地docker容器中This site can’t be reached错误的困扰,该容器从最新的Laradock安装运行Nginx。 我正在运行Docker版本17.12.0-ce,在Wi
我刚开始使用 Laradock 构建我的 Laravel 项目,但我在编辑由 php artisan Laradock 工作区中的命令。原因是工作区中的用户是根用户,而另一方面,我正试图由普通用户在我
无论我尝试什么,当我访问我的 docker-machine IP 时,我都会收到 HTTP 错误代码 500。 我通过 Docker 工具箱运行 laradock(操作系统:Windows 10)并运
所以我正在尝试为这样的 Laravel 应用程序编写单元测试: protected function setUp() { parent::setUp(); $this->disable
我正在尝试为我的 Laravel 项目设置 Laradock。我从一个新的 laravel 项目开始,只是为了在尝试我当前的项目之前进行测试。我按照教程进行操作,但在步骤中的某个地方,我想我一定搞砸了
我使用 Laradock 创建了一个 Laravel 项目。当我运行 npm install 时,我得到以下输出。 > node-sass@4.9.0 install /var/www/npmtest
我对 mysqli 和 mysql 有疑问。我在 Mac 上使用 laradock,在 docker-compose up -d nginx mysql phpmyadmin 并尝试在网络上打开我的
使用 Laradock(基本上是用于 Laravel 开发的一套 og Docker 镜像),我在调用 new\MongoId( $id ) 时不断收到 Class 'MongoId' not fou
按照文档在 laradock 中安装 FFMpeg。似乎可以在工作区中正常工作,但是按照 php-fpm 的说明不能。 起初我认为这是许可的事情,但是当我查看尚未安装的容器时。手动安装,一切正常(从
我有一个在 Laradock Docker 容器中运行的 Laravel 应用程序,它每天都会创建一个新的日志文件。 但是最近*每天在 UTC 午夜,我需要修复日志文件的权限,因为它开始出现错误: U
我收到以下错误 [Illuminate\Database\QueryException]
我无法更改工作区内的 php-fpm 版本。我正在尝试安装 PHP 7.1 版我的 docker 版本是 Docker version 18.06.1-ce, build e68fc7a 每次安装P
我无法更改工作区内的 php-fpm 版本。我正在尝试安装 PHP 7.1 版我的 docker 版本是 Docker version 18.06.1-ce, build e68fc7a 每次安装P
我是一名优秀的程序员,十分优秀!