我有一个登录页面和一个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
行到底是做什么的?这是正确的吗?答案 0 :(得分:4)
要创建自定义图像时使用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
看到登录页面
答案 1 :(得分:-1)
在此处了解有关Dockerfile的信息(官方文档):Best practices for writing Dockerfiles
然后 可能是您需要另一个Docker映像:Docker HUB ~> bitnami/php-fpme