什么是一个好的docker webdev工作流程?
我有种预感docker可以极大地改善我的webdev工作流程-但我还没有设法把方法放在将docker添加到堆栈中的项目上。 基本软件堆栈如下所示: 软件 提供自定义LAMP堆栈的Docker映像 Apache有几个模块 MySQL数据库 的PHP 一些CMS,例如Silverstripe GIT 工作流程 我可以想象工作流程看起来如下所示: 发展历程 编写一个Dockerfile定义满足上述要求的LAMP容器的 REQ:机器应该在启动后立即启动apache / mysql 构建Docker映像 将运行CMS所需的文件复制到例如 ~/dev/cmsdir 把~/dev/cmsdir/版本控制之下 运行Docker容器,然后以某种方式挂载~/dev/cmsdir到/var/www/容器上 填充数据库 做工作 /dev/cmsdir/ 提交并关闭Docker容器 部署方式 设置远程主机(例如,使用ansible) 将容器映像推送到远程主机 cmsdir通过git 获取-project 运行泊坞窗容器,在数据库中拉并安装cmsdir到/var/www 现在,在纸面上看起来一切都很好,但是我不确定这是否是正确的方法。 问题: 在本地进行开发时,如何使数据库在容器实例的重新启动之间保持不变?还是我需要在旋转容器之前每次都运行sql-dump? 我是否应该为db和apache服务器分别设置容器实例?还是为上述用例配备一个容器就足够了? 如果将单独的容器用于数据库和服务器,我如何同时自动向上和向下旋转它们? 我实际上将如何安装/dev/cmsdir/到容器目录中/var/www/?我应该为此使用数据量吗? 我错过任何陷阱了吗?有什么可以简化的吗?