laravel 如何使用docker容器从主机运行artisan命令

lrpiutwd  于 2023-03-31  发布在  Docker
关注(0)|答案(6)|浏览(163)

如果服务器正在运行到容器中,可以从主机运行“php artisan commands”,如何运行?

ig9co6j1

ig9co6j11#

要从主机运行命令,
你可以像这样使用Docker的exec命令:

docker exec -it my-container-name /bin/bash

之后,您可以运行任何您想要的命令

php artisan --version
col17t5w

col17t5w2#

您需要更改路径引用以适合您自己的项目,但这允许您在容器上从主机执行artisan命令,而无需登录。

docker exec -it <php-fpm-container> /var/www/html/artisan
dphi5xsq

dphi5xsq3#

主机上的客户端(php artisan)与容器中的服务器对话是一个已解决的问题:
这可以通过两种方式实现。它们使容器中的服务器端口可以在主机上访问:
1.通过传递-pdocker run将服务器的端口发布到主机。更多信息在这里。

docker run -p hostPort:containerPort ...

1.通过将--network host传递给docker run来使用Docker的“host networking”。更多信息是here

docker run --network host ...
mbjcgjjk

mbjcgjjk4#

如果使用docker-compose
1.首先进入容器

docker-compose exec <container_name|id> bash

1.现在后藤var/www/html目录并运行您选择的命令

7vux5j2d

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
3phpmpom

3phpmpom6#

**这就是解决方案!**好吧,有一段时间,我以为我疯了,但我没有。诀窍是设置一个PHP到host(用于CLI),与docker PHP版本匹配,所以:

相关问题