昨天我在之前从零开始创建的容器中实现了Apache服务的自动启动(详情记录在上一篇博文中:https://blog.csdn.net/arthurchan2021/article/details/141371026)。但是离实用性还有一段距离,所以今天继续折腾。
到目前为止访问http://localhost:8080返回的页面还是Ubuntu给Apache做的默认页面,我当然是想要它返回我自己的页面的。其实这也不难,只要在Containerfile里通过COPY指令把自己的页面复制到容器中默认存放网站页面的目录下,再重新构建镜像就可以了。像下面这样:
COPY ./index.php /var/www/html/
不过这样做适合构建可以发布项目的容器镜像,不适合用于做开发环境。因为站点的这些源码是要不断增加和修改的,按上面的方法就只能每次做了增加或修改想要看看实际运行效果就需要构建一次,再重新运行容器。这样真的太麻烦了。当然也可以再容器里安装想vim这样的编辑器,然后就直接在容器里面做开发。但这样以来需要把容器配置的更加复杂,还不如直接用像vmware这样的传统虚拟机就还了。
所以相信需要把存放在宿主机上的项目代码挂载到容器上去,这样我就可以在宿主机上编辑项目的代码,而实际运行这项代码就交给了Podman容器。有人说这样直接在宿主机配置一个开发环境不就行了吗,何必绕这么大一个圈子呢?如果从头到尾只是做一个项目开发,这样做当然没问题。但是如果我同时在开发多个项目,而且每个项目依赖的环境可能不同(比如说PHP的版本),通过容器跑项目的运行环境就很有优势了。
废话少说,开始动手吧!
首先我需要创建一个存放项目源代码的文件夹,因为这是一个实验,为了简单就将项目的代码粗暴的放在项目文件夹的根目录吧。这个文件夹我就随便明明为test吧。
C:\Users\arthur>e:
E:\>md test
E:\>
然后启动php_apache容器,并把E:\test文件夹挂载到容器上:
E:\>podman run --rm -it -p8080:80 -vE:\test:/var/www/html localhost/php_apache:7.4
* Starting Apache httpd web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.88.0.30. Set the 'ServerName' directive globally to suppress this message
*
root@d19ecb9bd1c2:/#
然后我在test文件夹下新建了一个index.php文件,其内容如下:
<?php
# 文件名: index.php
phpinfo();
迫不及待的在浏览器中访问http://localhost:8080,想看看效果:
酷,真的跑起来了!
好了,今天折腾就到这了。但是这还是太粗糙了,改天再往下折腾。