Laravel Sail Paradox - 有什么方法可以在不安装 php 和 Composer 的情况下安装?

Alo*_*mes 19 laravel laravel-sail

Laravel Sail,有一个很好的前提来创建一个零依赖环境,有 php、redis、mariadb 等...

但它的安装需要composer,composer需要安装php,

这是一个悖论吗?

安装了 docker 有什么方法可以实现零依赖?

onl*_*mas 21

编辑

我昨天在听 Laravel 新闻播客,Laravel 的人们为这个问题创建了一个解决方案。他们现在有一个包含命令的部分,该命令启动 php 容器,首先通过容器安装 php 依赖项,然后将它们移动到您的主机。

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs

Run Code Online (Sandbox Code Playgroud)

由于 Sail 为您提供了通过 Artisan 从主机管理容器的选项,所以不行

如果你不介意放弃以这种方式使用 Sail 的能力,而只是想为 Laravel 设置一个 docker 化的环境,那么可以。您可以为 php 创建一个容器,在其中复制项目并通过卷映射到主机。您可以通过 进入容器(就像使用sshdocker-compose exec <service> <command>,在我链接的存储库中,php Dockerfile 使用 Alpine 作为 linux 发行版,它附带ash(而不是bash)shell。因为他你才能奔跑

docker-compose exec php ash
Run Code Online (Sandbox Code Playgroud)

进入容器并在其中运行命令。