gpt4 book ai didi

laravel - 如何在docker容器内使用php artisan serve?

转载 作者:行者123 更新时间:2023-12-02 18:01:21 29 4
gpt4 key购买 nike

我使用 dockerfile 创建了一个 php-composer 图像:

FROM php:7

RUN apt-get update
RUN apt-get install curl
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN apt-get install -y git

我运行以下命令来创建一个容器并启动一个 Laravel 应用程序。
docker run -p 127.0.0.1:3000:8000 --name MyTest -dt php-composer to create a container
docker cp laravelApp/ d4bbb5d36312:/usr/
docker exec -it MyTest bash
cd usr/laravelApp
php artisan serve

之后,容器的终端将显示成功信息:
Laravel development server started: <http://127.0.0.1:8000>

但是当我在本地浏览器访问 127.0.0.1:3000 时,我什么也得不到。

那么是否有可能简单地运行 php artisan serve 来在 docker 容器内启动一个 Laravel 应用程序?

或者我必须使用 nginx 或 apache 来运行它?

最佳答案

可以这样做:

$ docker container run -it --rm -v /host/path/laravel:/app -p 3000:8000 php bash
$ cd /app
$ php artisan serve --host 0.0.0.0

默认情况下,容器从 bridge 开始网络,其中主机可用地址 0.0.0.0 .

When you start Docker, a default bridge network (also called bridge) is created automatically, and newly-started containers connect to it unless otherwise specified.



https://docs.docker.com/network/bridge

左右(仅限 Linux):
$ docker container run -it --rm --network host -v /host/path/laravel:/app php bash
$ cd /app
$ php artisan serve (or php artisan serve --port 3000)

If you use the host network driver for a container, that container’s network stack is not isolated from the Docker host.



https://docs.docker.com/network/host

关于laravel - 如何在docker容器内使用php artisan serve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369664/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com