Laravel Sail启动报错‘no configuration file provided: not found’求解决
解决Laravel Sail启动时「no configuration file provided: not found」报错
可能的解决步骤
1. 生成Sail配置文件
Laravel 9安装Sail后不会自动生成docker-compose.yml,需手动执行安装命令生成配置:
./vendor/bin/sail artisan sail:install
执行后会提示选择需要启用的服务(如MySQL、Redis等),按需选择后,项目根目录会自动生成docker-compose.yml文件。
2. 确认工作目录正确性
确保执行sail up命令时,当前终端的工作目录是项目根目录(即testApp目录),不要进入子目录(如vendor或app)执行命令。
3. 手动创建配置文件(若上述命令无效)
如果sail:install命令无法生成配置,可手动在项目根目录创建docker-compose.yml文件,填入Laravel Sail的默认配置(根据你的PHP版本调整):
version: '3' services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/8.1 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' image: sail-8.1/app extra_hosts: - 'host.docker.internal:host-gateway' ports: - '${APP_PORT:-80}:80' - '${VITE_PORT:-5173}:5173' environment: WWWUSER: '${WWWUSER}' LARAVEL_SAIL: 1 XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' volumes: - '.:/var/www/html' networks: - sail depends_on: - mysql mysql: image: 'mysql/mysql-server:8.0' ports: - '${DB_PORT:-3306}:3306' environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' MYSQL_DATABASE: '${DB_DATABASE}' MYSQL_USER: '${DB_USERNAME}' MYSQL_PASSWORD: '${DB_PASSWORD}' MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' volumes: - 'sail-mysql:/var/lib/mysql' networks: - sail healthcheck: test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"] retries: 3 timeout: 5s networks: sail: driver: bridge volumes: sail-mysql: driver: local
注意:将配置中的8.1替换为你项目使用的PHP版本(如8.0)。
4. 检查Docker运行状态与权限
- 确保Docker Desktop在Ubuntu系统中已正常启动。
- 确认当前用户属于
docker用户组,避免权限问题:
如果输出中没有groupsdocker组,执行以下命令添加用户到组(需重启终端生效):sudo usermod -aG docker $USER
内容的提问来源于stack exchange,提问作者Lorenzo F.
相关产品推荐
相关产品推荐

