【问题标题】:Laravel Sail "build path ./vendor/laravel/sail/runtimes/8.0 either does not exist, is not accessible, or is not a valid URL."Laravel Sail “构建路径 ./vendor/laravel/sail/runtimes/8.0 要么不存在,要么不可访问,要么不是有效的 URL。”
【发布时间】:2021-09-01 22:34:00
【问题描述】:

我使用 Laravel 8.x 和 Sail 使用 PHP 8.0,最近,我实际上弄乱了我的 compose.json 文件,导致供应商出现问题,试图从头开始重新创建项目,我删除了供应商文件夹。

通常,docker-compose 会构建并创建具有相应内容的 /path/to/project/vendor/laravel/sail/runtimes/ 目录,但由于某种原因,我不断收到以下错误:

ERROR: build path /path/to/project/vendor/laravel/sail/runtimes/8.0 either does not exist, is not accessible, or is not a valid URL.

我尝试使用docker system prune并通过Docker桌面界面手动删除现有容器,我什至尝试使用docker-compose build --no-cache运行它,我仍然得到同样的错误。

有没有办法解决这个问题,还是我应该再次克隆我的项目并尝试构建它?

注意:我使用的是旧 Mac,无法手动运行 composer install,因此我与实例的任何交互都依赖于 docker 容器的工作。

【问题讨论】:

  • > 注意:我使用的是旧 Mac,无法手动运行 composer install,因此我与实例的任何交互都依赖于 docker 容器的工作。 - 为什么?
  • @onlineThomas 为什么在这里应该无关,但既然你问了,它是一个 iMac,最新的操作系统版本为 10.12(Apple 或 Homebrew 不再支持)所以我真的无法让 php 8 处理它。

标签: laravel docker-compose laravel-sail


【解决方案1】:

设置任何 Laravel 项目的标准程序应该是运行 composer install,因此无法这样做真的很麻烦。

但是,在这种情况下,我运行 composer 的唯一方法是通过 docker,我选择使用 laravel.build 网站创建一个新项目并复制 vendor 文件夹。这是脚本:

docker info > /dev/null 2>&1

# Ensure that Docker is running...
if [ $? -ne 0 ]; then
    echo "Docker is not running."

    exit 1
fi

docker run --rm \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php80-composer:latest \
    bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium"

cd example-app

CYAN='\033[0;36m'
LIGHT_CYAN='\033[1;36m'
WHITE='\033[1;37m'
NC='\033[0m'

echo ""

if sudo -n true 2>/dev/null; then
    sudo chown -R $USER: .
    echo -e "${WHITE}Get started with:${NC} cd example-app && ./vendor/bin/sail up"
else
    echo -e "${WHITE}Please provide your password so we can make some final adjustments to your application's permissions.${NC}"
    echo ""
    sudo chown -R $USER: .
    echo ""
    echo -e "${WHITE}Thank you! We hope you build something incredible. Dive in with:${NC} cd example-app && ./vendor/bin/sail up"
fi

之后,运行./vendor/bin/sail up -d && ./vendor/bin/sail composer install 解决了这个问题。

【讨论】:

  • 这绝不是最好的答案,但我认为这个问题相当罕见,可能无论如何都不会收到任何答案。我将暂时推迟选择最佳答案,希望有更好的解决方案。
【解决方案2】:
docker run --rm --interactive --tty --volume C:/path/to/project:/app composer install --ignore-platform-reqs --no-scripts

【讨论】:

  • 见“Explaining entirely code-based answers”。虽然这在技术上可能是正确的,但它并没有解释为什么它可以解决问题或应该是选择的答案。除了帮助解决问题,我们还应该进行教育。
猜你喜欢
  • 1970-01-01
  • 2021-07-17
  • 2021-08-30
  • 1970-01-01
  • 2022-10-23
  • 2021-04-19
  • 2021-07-30
  • 2021-04-06
  • 2021-10-27
相关资源
最近更新 更多