我有一个登录页面和一个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-apache
和PHP7
网络服务器的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/