php - 如何使用网站和PHP运行Docker容器?

标签 php docker nginx

我有一个登录页面和一个PHP文件来发送电子邮件(反馈表)。我想使用Docker测试此表单。

我已经写了这个Dockerfile:

FROM php:7.4-cli
COPY . /usr/src/app
CMD [ "php", "/mail/contact_me.php"]

但这对我不起作用。

我在项目的根目录中有目录mail和PHP文件,但是我仍然不确定Dockerfile是否正确:
  • 继承FROM php:7.4-cli是否足够?还是必须添加nginx服务器才能运行图像?
  • COPY . /usr/src/app行到底能做什么?它是否正确?
  • 最佳答案

    要创建自定义图像时,将使用Dockerfile
    FROM php:7.4-cli指定要自定义的基本图像COPY . /usr/src/app主机当前目录.复制到容器 /usr/src/app中。CMD [ "php", "/mail/contact_me.php"]指定要在容器中运行的命令。

    就您而言,我认为不需要自定义图像。

    当您需要使用PHP的网络服务器时,可以使用预先安装了php:7.4.3-apachePHP7网络服务器的Apache镜像。您需要做的就是将应用复制到容器中,或使用一个卷。卷非常好,因为它实际上将主机目录装载到了容器中,从而使您可以从主机编辑应用程序并实时查看更改。

    您可以为此使用docker-compose.yml文件。

    version: "2"
    services:
      webserver:
        image: php:7.4.3-apache
        ports:
          - "8181:80"
        volumes:
          - ./app:/var/www/html
    

    假设您的应用程序位于主机上的app文件夹中,则此文件夹将挂载在容器上的/var/html/html上。在这里,8181:80将主机上的8181端口重定向到容器的80端口,即http端口。

    使用以下命令启动容器:
    docker-compose up -d
    

    您应该在http://localhost:8181上看到您的目标网页

    关于php - 如何使用网站和PHP运行Docker容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60398599/

    相关文章:

    php - 通过 PHP 将阿拉伯数字 html 实体转换为字符

    php - MySQL:聚合表 1 中的相似值字段

    docker/无花果 : port forwarding to guest machine does not work on MacOS

    django - 为什么我的Facebook登录重定向网址仍然使用我的Docker容器名称?

    ubuntu - Windows + VirtualBox + Ubuntu + Docker + Nginx 权限

    amazon-web-services - 如何使用 AWS、Docker、Nginx + Daphne 在生产中正确配置 Django Channels?

    php - 需要帮助分组 php 数组

    php - 使用关联的实体字段设置 slug

    docker - 本地多个数据库

    file-upload - session 上传进度是否适用于 nginx 和 php-fpm?