Laravel Sail 不会在 Ubuntu 20.04 上构建 - groupadd:无效的组 ID 'sail'

Posted

技术标签:

【中文标题】Laravel Sail 不会在 Ubuntu 20.04 上构建 - groupadd:无效的组 ID \'sail\'【英文标题】:Laravel Sail won't build on Ubuntu 20.04 - groupadd: invalid group ID 'sail'Laravel Sail 不会在 Ubuntu 20.04 上构建 - groupadd:无效的组 ID 'sail' 【发布时间】:2021-07-17 08:08:17 【问题描述】: 我试图在新的 ubuntu 安装上使用 docker 设置 laravel/sail。 遵循本手册后:https://laravel.com/docs/8.x/installation#getting-started-on-linux

我在起航时收到无效组 ID 航行错误(已创建别名,因此我不再需要使用 ./vendor/bin/sail up)。

groupadd: invalid group ID 'sail'
ERROR: Service 'laravel.test' failed to build : The command '/bin/sh -c groupadd --force -g $WWWGROUP sail' returned a non-zero code: 3

【问题讨论】:

你能分享一下你设置风帆的具体步骤,以及你是如何创建别名的吗? @apokryfos alias sail='bash vendor/bin/sail' 不过没关系,./vendor/bin/sail up 也不行 剩下的步骤怎么样? 【参考方案1】:

如果您运行docker-compose up,就会发生这种情况,如果您运行sail up,它将按预期工作。

您可能需要先配置别名:

alias sail='bash vendor/bin/sail'

【讨论】:

docker 主机上没有安装 php,所以不能运行 composer install 到依赖然后运行sails【参考方案2】:

您可以将其添加到 .env 文件中

WWWGROUP=1000
WWWUSER=1000

这两个值都应该是 1000,但你也可以从 bash 中获取它们

id -g <username>
id -u <username>

【讨论】:

我发现这是解决当前问题的有效解决方案,但它会导致其他不同的问题(使用 docker-compose 而不是 wail 包装器)。 peter.babic,你发现了哪些问题? @andrea-matioli 权限相关问题,目前还不能完全确定。我还发布了一个简短的,不是很有用的评论 Github 评论 here【参考方案3】:

问题出在作曲家本身。重新安装并清除 docker 映像后,它开始构建它!

【讨论】:

由于直接运行docker-compose up 而不是使用sail up,我得到了这个。似乎 shell 脚本做了很多额外的繁重工作。可能是您没有使用sail 命令进行初始构建,导致一些问题。【参考方案4】:

你可以通过运行这个来解决这个问题,然后再创建docker-compose up:

export APP_SERVICE=$APP_SERVICE:-"laravel.test"
export DB_PORT=$DB_PORT:-3306
export WWWUSER=$WWWUSER:-$UID
export WWWGROUP=$WWWGROUP:-$(id -g)

这是sai每次运行命令时都会做的事情,但是当你直接运行docker-compose时,你需要先做。

你可以在这里看到这个:https://github.com/laravel/sail/blob/1.x/bin/sail#L21

【讨论】:

虽然它可能解决了问题,但真正的原因是直接使用了docker-compose 而不是sail 脚本。

以上是关于Laravel Sail 不会在 Ubuntu 20.04 上构建 - groupadd:无效的组 ID 'sail'的主要内容,如果未能解决你的问题,请参考以下文章

无法在 .env 上为 Laravel Sail 设置 APP_PORT

带有 Laravel Sail 和版本控制的 Laravel 8 开发项目

在 Laravel 上使用 Sail 时没有匹配的清单错误

Laravel Sail 正在关闭每个 Sails 命令的旧 Sail 进程

laravel、sail shell 和sails artisan 命令停止工作

Laravel Sail 如何更改本地开发域