构建自己的镜像,首先是为了满足项目需求。一些官方镜像不包含的扩展可以自己添加进去。其次,在开发调试阶段就用自己的镜像,若是PHP环境有问题,可以及时发现并加以完善。第三,在自己的镜像基础上,把开发好的应用再次构建成生产环境镜像。用生产镜像去部署生产服务器就十分方便啦!
在php目录下运行下面的构建命令
cd php
docker build -t ziyo-php:8.1.28-cli-alpine .
因为PHP官方的Docker镜像包含的扩展无法满足我们项目的需求,所以要根据项目进行php环境的配置。
php/Dockerfile为本项目集成了包管理工具composer和以下扩展:
应用开发阶段可以用下面的命令启动一个容器,进行开发调试
docker run -itd --name ziyo-webman -p 8787:8787 -e TZ="Asia/Shanghai" -v ./src:/www ziyo-php:8.1.28-cli-alpine
打开一个终端
docker exec -it ziyo-webman /bin/sh
安装Webman(需要手动安装一下。当然也可以直接把现有的webman项目,复制到src目录里)
cd /www
composer create-project workerman/webman .
启动Webman
cd /www
php start.php start
访问您的应用: http://localhost:8787
如果您觉得开发阶段要敲上面这么多命令过于繁琐,那么一条命令启动文件监视模式,这种方式会更方便些。
docker-compose up --watch
初始项目下可能会报错
Could not open input file: start.php
,这是由于src目录下是空的,并没有webman的框架代码。可以将您已有的webman项目复制到src下面,然后再运行上面的命令。
基于项目根目录下的Dockerfile构建出生产环境的镜像
docker build -t ziyo-webman-production .
其中
ziyo-webman-production
是镜像名称,请自行修改
docker run -itd --restart=always --name ziyo-webman -p 8080:8787 ziyo-webman-production
--restart=always
重启策略很重要。当webman进程异常退出会导致容器的运行的中止,这时重启策略起作用,就可以自动重启容
器并运行webman的服务啦。
项目根目录下提供了一个docker-compose.yml,可以更方便的部署。
docker-compose up -d
执行上面的命令,docker会自动构建一个生产镜像,并将./runtime挂载到容器的/www/runtime,运行后的日志可以在./runtime下直接查看了。
停止并删除容器
docker-compose down -v
删除旧的镜像
docker rmi webman-server
webman-server
是自动构建出来的镜像,一般是目录名-服务名
的形式,请根据您项目的目录与compose配置services下的服务节点名进行调整。
重新构建并运行
docker-compose up -d
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。