前一次我们通过docker 搭建了selenium的分布式测试环境。
在学习过程中,觉得如果把调试环境也放在docker,这样不管以后在工作中统一大家的调试的测试环境肯定会有帮助的。
刚开始我觉得只要我把我配置好的环境做成一个images 然后发给需要的人,让他们导入到docker中就可以了。
但是这个方法看起来很笨重,也不利于镜像的管理,如果镜像里修改了某些内容,难道还让我把新的镜像在发放一次?
答案是这个方法可行,但是还是笨重。
好在docker有自己的管理方式,就是dockerfile。
工作原理很简单,dockerfile中先指定一个基础镜像,然后把shell命令写到脚本中,然后脚本根据内容,在基础镜像的上开始运行脚本,最后就生成了新的镜像。
这种方式的好处就我现在能感受到的优点有:
1.方便传送,一个dockerfile基本上不会大于1M,但是一个docker image有的却会是几百M以上的。
2.方便维护,当我们的images中需要删除,或者增加什么工具或者控件的时候,我们修改dockerfile,然后发布出去,大家重新构建images就可以了。不需要去通知每个人去做操作,或者去每个人的images中去做相同的操作。
那么我们开始学习dockerfile。
目标:在镜像 selenium/standalone-chrome-debug 中添加python和中文字体。
1.问题
首先我们看下图
上图是我启动容器debug(使用的镜像selenium/standalone_chrome_debug),首先我们发现没有安装python,其次打开的网页中中文显示为乱码。我们就遇上了两个问题
问题1:安装python
问题2:增加字库
增加字库,解决方案
下图是@ycwdaaaa 在文章https://testerhome.com/topics/8450 中给出一个解决方案。他建议在dockerfile中加入以下命令
前面我说了dockerfile 中其实很大一部分就是执行shell命令。
那么我们来验证下,在容器debug的bash中输入命令
apt-get update
apt-get -y install ttf-wq