我有一种预感,Docker可以大大改善我的webdev工作流程 - 但我还没有完全围绕如何处理将Docker添加到堆栈的项目.
基本软件堆栈看起来像这样:
Docker镜像提供自定义LAMP堆栈
GIT
我可以想象工作流看起来有点像下面这样:
Dockerfile定义符合上述要求的LAMP容器
~/dev/cmsdir
~/dev/cmsdir/版本控制之下~/dev/cmsdir到/var/www/容器上/dev/cmsdir/cmsdir通过git 获取-projectcmsdir到/var/www现在,这在纸上看起来相当不错,但我不太确定这是否是正确的方法.
在本地开发时,如何让数据库在重新启动容器实例之间保持不变?或者我是否需要在每次旋转容器之前运行sql-dump?
我应该为db和apache服务器设置单独的容器实例吗?或者为上述用例提供单个容器是否足够?
如果为数据库和服务器使用单独的容器,我怎样才能同时自动上下旋转?
我如何实际装入/dev/cmsdir/容器目录/var/www/?我应该利用数据量吗?
我错过了任何陷阱吗?什么可以简化?
Jir*_*iri 46
如果您需要独立于CMS容器的数据库持久性,则可以使用一个容器用于MySQL,一个容器用于CMS.在这种情况下,您可以让MySQL容器仍在运行,并且可以根据需要随时重新部署CMS.
对于开发 - 另一种选择是使用数据卷从主机/开发机器映射mysql数据目录.通过这种方式,您可以随时使用git(在主机上)和"重新加载"初始状态来管理mysql(在docker中)的数据文件(在启动mysql容器之前).
是的,我认为你应该为db提供一个单独的容器.
我只使用基本脚本:
#!/bin/bash
$JOB1 = (docker run ... /usr/sbin/mysqld)
$JOB2 = (docker run ... /usr/sbin/apache2)
echo MySql=$JOB1, Apache=$JOB2
Run Code Online (Sandbox Code Playgroud)是的,您可以使用data-volumes -v开关.我会用它来开发.您可以使用只读安装,因此如果您愿意,不会对此目录进行任何更改(您的应用程序应该将数据存储在其他位置).
docker run -v=/home/user/dev/cmsdir:/var/www/cmsdir:ro image /usr/sbin/apache2
Run Code Online (Sandbox Code Playgroud)
无论如何,对于最终部署,我将使用dockerfile构建和映像 ADD /home/user/dev/cmsdir /var/www/cmsdir
我不知道 :-)
| 归档时间: |
|
| 查看次数: |
19138 次 |
| 最近记录: |