如何在docker容器内使用php artisan服务?

2023-11-27

我使用 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 artisanserve 来在 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.

当启动 Docker 时,会自动创建一个默认的桥接网络(也称为网桥),除非另有说明,新启动的容器都会连接到该网络。

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)

如果您对容器使用主机网络驱动程序,则该容器的网络堆栈不会与 Docker 主机隔离。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在docker容器内使用php artisan服务? 的相关文章

随机推荐

  • 使用 PostGIS 配置 Amazon Elastic Beanstalk

    有谁有使用 PostGIS 设置 Amazon Elastic Beanstalk 的经验 以便我可以利用 Geodjango 默认设置 RDS 以 MySQL 为特色 当前不支持开箱即用的许多功能 1 PostgreSQL PostGIS
  • 如何在 django 中验证 json 对象

    我正在使用 AJAX 向 django 视图提交 JSON JSON 如下所示 code 9910203040 required name Abc required payments amount 300 required name efg
  • winform 友好的类名

    我有一个 C winform 应用程序 当使用间谍 时 它给出 WindowsForms10 Window 8 app 0 33c0d9d 作为类名 有没有办法将其更改为更友好的内容 没有 最后一个十六进制数字是拥有该窗口的 AppDoma
  • 如何在 vim 中删除下一个字符(不是当前字符!)?

    我经常发现自己需要删除光标后面的字符 而不是当前字符 在 vim 的正常模式下执行此操作的最短方法是什么 lx会成功 或者lxh如果您想将光标返回到原始位置 它只是向前移动光标并删除其下方的字符 如果这还不够短 您可以将其映射到单个按键 m
  • Linux集群,如何“仅仅”锁定一个文件?

    在 Bash 中 我试图使函数 getLock 与不同的锁名称一起使用 function getLock getLock FILE 1 getLock OP 2 case getLock OP in LOCK UN flock u getL
  • 如何表示当前英国时间?

    我在服务器和客户端之间转换日期时遇到问题 两者都在德国运行 客户端计算机上的区域设置可以设置为英国或德国 我从服务器收到一个 CET 格式的日期 我需要在 UI 上将此时间表示为英国时间 例如 从服务器收到的时间 如 01 07 2010
  • Jenkins/fastlane - 没有找到本地代码签名身份

    我在使用 Jenkins 的 fastlane 时遇到问题 在终端中运行此命令有效fastlane provide crashlytics build testing false check xcode false env xxx 但是詹金
  • C OpenMP 并行快速排序

    在 C 中使用 openMP 时 我再次陷入困境 这次我尝试实现并行快速排序 Code include
  • 如何在 PHP 中将日期加 1(日/年)?

    我有一个日期存储在数组中 this gt lines uDate 日期的格式不固定 我可以这样改变 define DATETIME FORMAT y m d H i 如何将我的 uDate 添加一定的天数或年数 我的问题与此相关 将日期增加
  • 如何隐藏一些 Eclipse 自动完成结果[重复]

    这个问题在这里已经有答案了 我正在 Eclipse 3 6 中开发 Wicket 应用程序 有没有办法阻止 Eclipse 自动完成中的某些包 以便我看不到对同名的不需要的 AWT 类的建议 我想看看org apache wicket结果如
  • 使用 ANT 编译 JavaFX 代码

    我的系统上安装了以下内容 Java version 1 7 0 09 JavaFX 2 0 SDK NetBeans 7 2 1 当我尝试使用 ANT 编译代码时 它显示错误消息 Could not load definitions fro
  • jquery ui tabs 主要风格变化

    我正在使用 jquery UI 选项卡 我需要主要更改它的样式 我需要重新调整背景图像 边框 几乎所有内容 我需要它看起来最小 而不是像它是独立的 最好的方法是什么 然而 我需要使用日历小部件的默认 UI 样式 该样式位于同一页面上 我做了
  • 我如何在 JQuery 中解析这个 JSON 对象? [复制]

    这个问题在这里已经有答案了 我有一个 JSON 对象 它没有给定三个值的键 每个值都是一个数组 我想解析它们 我怎样才能在 JQuery 中做到这一点 cid 3 pid 0 nid 12 uid 4 subject test2 hostn
  • 我应该在 Elixir Phoenix 的控制器或模型中使用 Ecto.Repo 吗?

    对于控制器中的一些查询Phoenix 我有两个计划 Plan 1 defmodule Demo UserController do def index do This is just for example The point is Rep
  • 为什么在 Akka Dispatcher 上启动时,Futures in Futures 会按顺序运行

    当我们尝试从参与者的接收方法中启动多个 future 时 我们观察到了奇怪的行为 如果我们使用配置的调度程序作为 ExecutionContext 则 futures 将在同一线程上按顺序运行 如果我们使用 ExecutionContext
  • createObjectURL 错误:`参数必须是 Blob 的实例。收到 Blob 的实例`

    我有一条快速路线 其中包含以下内容 let result await fetch http someurl result await result blob console log result const img URL createOb
  • MySQL 全文停用词基本原理

    我目前正在尝试为我的网站开发一个基本的全文搜索 我注意到某些单词 例如 regarding 被列为 MySQL 全文搜索的停用词 现在这并没有太困扰我 因为搜索特定新闻项目的人不一定会使用 关于 一词进行搜索 但我当然不能代表所有人 然而
  • 如何在没有 web.xml 的情况下以编程方式配置

    除了使用的方法之外 还有其他方法可以配置上下文参数吗web xml就像下面的例子一样
  • 删除引用以帮助 GC 是一个好习惯吗?

    我想知道您是否认为删除引用是一个好习惯 将它们设置为null 到对象以帮助 Java 垃圾收集器 例如 假设您有一个包含两个字段的类 其中一个字段非常消耗内存 如果您知道只需要它进行特定处理 则可以在之后立即将其置空以帮助 GC 假设我确实
  • 如何在docker容器内使用php artisan服务?

    我使用 dockerfile 创建一个 php composer 图像 FROM php 7 RUN apt get update RUN apt get install curl RUN curl sS https getcomposer