在节点 Docker 容器中运行项目时出现 Tailwind CSS EACCESS 错误(Docker Compose)
Posted
技术标签:
【中文标题】在节点 Docker 容器中运行项目时出现 Tailwind CSS EACCESS 错误(Docker Compose)【英文标题】:Tailwind CSS EACCESS Error When Running Project In Node Docker Container (Docker Compose) 【发布时间】:2021-08-17 04:51:58 【问题描述】:我有一个使用 svelte-kit 和 Tailwind CSS 的项目。我最近将它转移到使用 docker compose。当我运行我的容器时,我在 WSL 中运行它们,因为它们通常在那里运行得更好。当我启动运行开发服务器的容器时,它启动并运行得很好,但是当我在浏览器中打开 URL 时,出现以下错误。
Error: EACCES: permission denied, mkdir '/root/.tailwindcss/touch'
at Object.mkdirSync (node:fs:1325:3)
at Object.<anonymous> (/var/www/html/node_modules/tailwindcss/jit/lib/setupContext.js:44:8)
at Module._compile (node:internal/modules/cjs/loader:1109:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1138:10)
at Module.load (node:internal/modules/cjs/loader:989:32)
at Function.Module._load (node:internal/modules/cjs/loader:829:14)
at Module.require (node:internal/modules/cjs/loader:1013:19)
at require (node:internal/modules/cjs/helpers:93:18)
at Object.<anonymous> (/var/www/html/node_modules/tailwindcss/jit/index.js:7:22)
at Module._compile (node:internal/modules/cjs/loader:1109:14)
我不确定是什么导致了这个错误,但我认为它与顺风有关。 这是我的 docker-compose 文件的链接:https://github.com/DriedSponge/GorillianCurrencyConversion/blob/master/docker-compose.yml
如果您想自己尝试一下,这里有一个指向 repo 的链接和重现的步骤: https://github.com/DriedSponge/GorillianCurrencyConversion
安装包:docker-compose run npm install
启动开发服务器:docker-compose --profile dev up -d --build
如果您对正在发生的事情有任何想法,或者如果您需要我提供任何其他信息,请告诉我。提前致谢!
【问题讨论】:
【参考方案1】:看起来 Tailwind 是 trying to create a touch file,这与在开发期间监视文件更改有关,特别是当 Tailwind 位于 JIT mode 时。
您可以通过以下任一方式解决此问题:
-
允许对
/root/.tailwindcss
的写访问。
通过设置TAILWIND_DISABLE_TOUCH
环境变量禁用触摸。
通过将TAILWIND_TOUCH_DIR
环境变量设置为允许写入的位置来更改触摸文件目录。
要设置环境变量,在您的package.json
文件中设置它们可能是最方便的。只需在scripts
下的相关命令前加上环境变量即可,如:
"dev": "TAILWIND_TOUCH_DIR='/var/www/html/.tailwindcss/touch' svelte-kit dev"
注意不要将此目录指向包含重要文件的目录,因为 Tailwind 会删除该目录中的所有文件。
除了comments in the source 之外,这些选项都没有记录在任何地方,所以我不完全确定这样做的后果是什么,尤其是在开发模式下。我相信这用于在文件更改时进行通信,因此选项 1 或 3 可能是最安全的选择。
【讨论】:
以上是关于在节点 Docker 容器中运行项目时出现 Tailwind CSS EACCESS 错误(Docker Compose)的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker Toolbox 中运行 Java 应用程序时出现 SunCertPathBuilderException
运行命令 **sed** 时出现 docker 容器错误 [重复]
解决CentOS7下运行docker容器时出现的报错Error resolving syscall name...
使用 Flyway 和 Docker 容器内的嵌入式 Postgresql 运行测试时出现 java.net.ConnectException
尝试在运行 docker-toolbox 的 Windows 上使用 docker-compose 在 docker 容器内运行 webpack-dev-server 时出现“来自服务器的空回复”