Laravel Sail Paradox - 有什么方法可以在不安装 php 和 composer 的情况下安装?
Laravel Sail Paradox - There are any way to install without php and composer installed?
Laravel Sail,有一个很好的前提来创建一个零依赖环境,php,redis,mariadb等...
但是它的安装需要composer,composer需要安装php,
这是悖论吗?
安装docker有什么方法可以实现零依赖?
由于 Sail 为您提供了通过 Artisan 从主机管理容器的选项,因此 否。
如果你不介意放弃这样使用Sail的能力,只想为Laravel搭建一个docker化的环境,那么是的 .您可以为 php 创建 a container,在其中复制您的项目并通过卷映射到主机。你可以通过docker-compose exec <service> <command>
进入一个容器(好像使用ssh
),在我链接的repo中,php Dockerfile使用Alpine作为linux发行版,它附带ash
(而不是 bash
)shell。因为他你可以运行
docker-compose exec php ash
进入容器并在其中运行命令。
它在此处的文档中:
https://laravel.com/docs/9.x/sail#installing-composer-dependencies-for-existing-projects
您可以单独使用 sail Docker 容器来 bootstrap 进程,并在该容器中使用 运行 composer
。该文档的主要部分是这个命令:
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
还有一个 laravelsail/php7.4:latest
容器,如果您还没有使用 PHP 8.
编辑:以上曾经有效,但现在似乎已损坏。容器没有 sail
用户或组,这会导致权限问题。
当执行sail up
命令时,PHP容器的入口点将获取当前用户ID和组ID,然后将它们分配给sail
用户和组。这种情况(现在)发生在 sail up
命令中,而不是上面列出的 laravelsail
容器中。
我不确定这是什么时候改变的。现在你可以 运行 上面没有 -u
选项,并在容器中将应用程序设置为根。之后需要手动修复权限。
另请注意,laravelsail/php7.3
容器最初只安装了 composer
v1.8,但可以使用 composer self-update
.
轻松更新
Laravel Sail,有一个很好的前提来创建一个零依赖环境,php,redis,mariadb等...
但是它的安装需要composer,composer需要安装php,
这是悖论吗?
安装docker有什么方法可以实现零依赖?
由于 Sail 为您提供了通过 Artisan 从主机管理容器的选项,因此 否。
如果你不介意放弃这样使用Sail的能力,只想为Laravel搭建一个docker化的环境,那么是的 .您可以为 php 创建 a container,在其中复制您的项目并通过卷映射到主机。你可以通过docker-compose exec <service> <command>
进入一个容器(好像使用ssh
),在我链接的repo中,php Dockerfile使用Alpine作为linux发行版,它附带ash
(而不是 bash
)shell。因为他你可以运行
docker-compose exec php ash
进入容器并在其中运行命令。
它在此处的文档中:
https://laravel.com/docs/9.x/sail#installing-composer-dependencies-for-existing-projects
您可以单独使用 sail Docker 容器来 bootstrap 进程,并在该容器中使用 运行 composer
。该文档的主要部分是这个命令:
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
还有一个 laravelsail/php7.4:latest
容器,如果您还没有使用 PHP 8.
编辑:以上曾经有效,但现在似乎已损坏。容器没有 sail
用户或组,这会导致权限问题。
当执行sail up
命令时,PHP容器的入口点将获取当前用户ID和组ID,然后将它们分配给sail
用户和组。这种情况(现在)发生在 sail up
命令中,而不是上面列出的 laravelsail
容器中。
我不确定这是什么时候改变的。现在你可以 运行 上面没有 -u
选项,并在容器中将应用程序设置为根。之后需要手动修复权限。
另请注意,laravelsail/php7.3
容器最初只安装了 composer
v1.8,但可以使用 composer self-update
.