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 创建一个容器,在其中复制项目并通过卷映射到主机。您可以通过 进入容器(就像使用ssh
)docker-compose exec <service> <command>
,在我链接的存储库中,php Dockerfile 使用 Alpine 作为 linux 发行版,它附带ash
(而不是bash
)shell。因为他你才能奔跑
docker-compose exec php ash
Run Code Online (Sandbox Code Playgroud)
进入容器并在其中运行命令。