如果服务器正在运行到容器中,可以从主机运行“php artisan commands”,如何运行?
ig9co6j11#
要从主机运行命令,你可以像这样使用Docker的exec命令:
exec
docker exec -it my-container-name /bin/bash
之后,您可以运行任何您想要的命令
php artisan --version
col17t5w2#
您需要更改路径引用以适合您自己的项目,但这允许您在容器上从主机执行artisan命令,而无需登录。
docker exec -it <php-fpm-container> /var/www/html/artisan
dphi5xsq3#
主机上的客户端(php artisan)与容器中的服务器对话是一个已解决的问题:这可以通过两种方式实现。它们使容器中的服务器端口可以在主机上访问:1.通过传递-p到docker run将服务器的端口发布到主机。更多信息在这里。
php artisan
-p
docker run
docker run -p hostPort:containerPort ...
1.通过将--network host传递给docker run来使用Docker的“host networking”。更多信息是here。
--network host
docker run --network host ...
mbjcgjjk4#
如果使用docker-compose1.首先进入容器
docker-compose
docker-compose exec <container_name|id> bash
1.现在后藤var/www/html目录并运行您选择的命令
7vux5j2d5#
当使用package.json时,您可以将其放置在“脚本”中,如
{ ... "scripts":{ "artisan": "docker exec -it CONTAINER-NAME php artisan --command process.env.command" } ... }
然后你可以执行像这样的artisan-command:
迁移:
npm run artisan migrate
版本号
npm run artisan --version
3phpmpom6#
**这就是解决方案!**好吧,有一段时间,我以为我疯了,但我没有。诀窍是设置一个PHP到host(用于CLI),与docker PHP版本匹配,所以:
6条答案
按热度按时间ig9co6j11#
要从主机运行命令,
你可以像这样使用Docker的
exec
命令:之后,您可以运行任何您想要的命令
col17t5w2#
您需要更改路径引用以适合您自己的项目,但这允许您在容器上从主机执行artisan命令,而无需登录。
dphi5xsq3#
主机上的客户端(
php artisan
)与容器中的服务器对话是一个已解决的问题:这可以通过两种方式实现。它们使容器中的服务器端口可以在主机上访问:
1.通过传递
-p
到docker run
将服务器的端口发布到主机。更多信息在这里。1.通过将
--network host
传递给docker run
来使用Docker的“host networking”。更多信息是here。mbjcgjjk4#
如果使用
docker-compose
1.首先进入容器
1.现在后藤var/www/html目录并运行您选择的命令
7vux5j2d5#
当使用package.json时,您可以将其放置在“脚本”中,如
然后你可以执行像这样的artisan-command:
迁移:
版本号
3phpmpom6#
**这就是解决方案!**好吧,有一段时间,我以为我疯了,但我没有。诀窍是设置一个PHP到host(用于CLI),与docker PHP版本匹配,所以: