Laravel Sail启动Docker镜像失败:sail用户不存在报错
解决Laravel Sail启动Docker容器时"sail用户不存在"的错误
错误原因
容器启动时,supervisord配置中指定的sail用户未被创建,导致无法启动PHP进程,同时触发usermod命令报错。通常是镜像构建缓存异常或自定义配置覆盖了默认的用户创建步骤导致。
解决步骤
1. 清理现有容器并重建镜像
这是最常见的修复方式,彻底清除残留的缓存和容器:
# 停止并删除容器、卷 sail down -v # 无缓存重新构建镜像 sail build --no-cache # 启动容器 sail up
2. 检查自定义Dockerfile(若有)
如果项目中使用了自定义Dockerfile,确保包含创建sail用户的步骤:
RUN useradd -ms /bin/bash sail
同时确认/etc/supervisor/conf.d/supervisord.conf里的program:php段,user配置为sail(如果自定义了用户名,需同步修改配置中的用户)。
3. 清理Docker全局缓存(极端情况)
如果上述步骤无效,清理Docker的未使用资源:
# 清理所有未使用的镜像、容器、卷等(谨慎操作) docker system prune -a
或者仅删除Sail相关镜像(替换为你的PHP版本镜像名):
docker rmi laravelsail/php83-app
之后再重新执行sail build --no-cache和sail up。
内容的提问来源于stack exchange,提问作者Jean Luc Gouirand
相关产品推荐
相关产品推荐

