如何使用网站和php运行Docker容器?
我有一个登录页和一个PHP文件来发送电子邮件(反馈表)。我想用Docker测试这个表单 我写了这个Dockerfile:如何使用网站和php运行Docker容器?,php,docker,nginx,Php,Docker,Nginx,我有一个登录页和一个PHP文件来发送电子邮件(反馈表)。我想用Docker测试这个表单 我写了这个Dockerfile: FROM php:7.4-cli COPY . /usr/src/app CMD [ "php", "/mail/contact_me.php"] 但这对我不起作用 我有一个目录mail,其中PHP文件位于项目的根目录中,但我仍然不确定Dockerfile是否正确: 从php:7.4-cli继承就足够了吗?还是必须添加nginx服务器才能运行映像 行复制什么/usr/sr
FROM php:7.4-cli
COPY . /usr/src/app
CMD [ "php", "/mail/contact_me.php"]
但这对我不起作用
我有一个目录mail
,其中PHP文件位于项目的根目录中,但我仍然不确定Dockerfile是否正确:
- 从php:7.4-cli继承
就足够了吗?还是必须添加nginx服务器才能运行映像
- 行
你到底要做什么?这是正确的吗复制什么/usr/src/app
可能您需要另一个Docker映像:当您想要创建自定义映像时,将使用
Dockerfile
php:7.4-cli中的指定要自定义的基本映像。
复制/usr/src/app
将主机当前目录
复制到容器中/usr/src/app
CMD[“php”,“/mail/contact_me.php”]
指定要在容器中运行的命令
在您的情况下,我认为不需要自定义图像
由于您需要一个带有PHP的Web服务器,您可以使用预先安装的PHP7
和apache
Web服务器附带的PHP:7.4.3-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
您需要一个Nginx Web服务器和php容器。请您在回答时写下Dockerfile的外观,好吗?谢谢@invalidbotI为了更好的理解和可读性,我编辑了你的问题。因此,我重新组织了您的文本,将更多的精力放在您的问题上(您的每个问题现在都是结尾的一个要点,而不是代码段中的一个要点)。如果您可以包含您收到的错误消息,那也很好。请阅读并编辑您的问题,并从中提出建议。因此“/app:”我的文件夹是项目的吗?例如,我的项目是包含所有代码的“myproject”文件夹。所以我必须写“/myproject:/var/www/html”?我已经在本地主机上:8181:禁止您没有访问此资源的权限。本地主机端口8181上的Apache/2.4.38(Debian)服务器是根据我发布的代码组织文件的方式。然后,您可以通过localhost:8181/index.php访问您的应用程序