• 卸载了😂 😂 😂 就玩不了了

  • 我一直用的 jenkins 上的插件。 简单实用

  • 其实原理还是比较简单的。 不是靠 filter 和 reduce。 我们创建 RDD 的方式有两种,一种是从文件中读取数据,结果自然就是 RDD。 还有一个就是通过一个 list 在内存中生成 RDD。我们用的是第二种。先通过 xrange(不是 range,因为 range 是一次性在内存中生成。而我们的数据庞大。 所以用 xrange,它返回的是一个生成器)生成足够大的原始空表。例如你想造 1000 行。 那就是 sc. parallelize(xrange(1000))。这样你就有了 1000 行的 RDD 了。 然后再通过 map 方法处理每一行。把每一行的数据构造好就行了。 这是最简单的场景。 还有一些比较复杂的,例如你要造拼表的情况,比如要造两个表,附表靠外键跟主表拼接。 这种场景就需要事先造出一个 key 的 RDD 来,这个 RDD 只有一列,就是 key。 然后分别造出主表和附表的 RDD。 再通过让这个 Key 的 RDD 跟主副两表 join

  • 首先说一下 USER 这个指令哈。USER 的意思是工作用户。 是说用哪个用户执行下面的命令。你的例子里面就是用 root 用户执行下面的命令,并且容器启动以后,entrypoint 和 CMD 都是用 root 去执行的。 用 docker exec 命令进入容器的里面也是 root 用户。 如果换了另一个用户,例如 work。 你再用 docker exec 命令进去容器的时候就会发现当前使用的用户是 work 了。类似的还有 WORKDIR 这个指令。意思是工作目录。

    再说就是楼主说的镜像的共享的问题。楼主主要是通过 dockerfile 来达到镜像共享的问题。他人通过拿到你的 dockerfile 重新 build 一个镜像的方式来使用。其实我是十分不推荐这种做法的。 楼主可能觉得一个镜像比较大,传递起来比较麻烦耗时。 但是有些时候重新 build 一个镜像是更耗时的。尤其是这个镜像有好几层的时候。或者 dockerfile 里写了很多安装工具的 shell,例如安装一个 jdk 就比较耗时。我这里有一个编译的基本镜像。从 gcc 到 thrift 到 jdk 到 scala 应有尽有,build 这么个镜像没半个小时一个小时的是结束不了的。这时候反倒是拉现有的镜像比较快。 而且重新 build 一个镜像的话你是控制不了对方给这个镜像起什么名字,用什么 tag 的。非常的不好管理。 有时候会造成一个机器里同一个镜像有好多个名字和 tag 的情况。

    所以我比较建议楼主在内网搭建一个镜像仓库。build 好一个镜像以后直接 push 上去。 别人想用的话直接拉下来就好了。 不用你主动的发包给他。你只要维护好镜像仓库上的镜像版本就好了。有点像你在内网搭建了一个 docker hub 的感觉。 在以后测试环境变多,docker 单节点扩展到多节点。 引入编排工具的时候,例如我用的 k8s。 在多个节点之间共享镜像用的也同样是镜像仓库。 这类的容器编排工具都会提供 image pull policy。通过你选择的策略去决定是否从镜像仓库中重新拉取最新的镜像。

    1. 乱码不是因为系统编码问题,是因为系统没有安装对应的字体。毕竟镜像是老外做的,没有中文的那些字体是比较正常的。你可以继承它的镜像做自己的定制,安装你想要的字体,例如我装的是微软的雅黑字体。如下是我做的:

      另外不要一个节点只启动一个浏览器,那样很浪费资源。传递环境变量进去可以改变配置。如下:

      1. chrome node 的镜像有很多版本的。像我用的是 3.2.0。 你可以去 github 和 docker hub 上查看一下信息

    另外你也可以用像 1 中的方法。自己定制一个镜像,把 chrome 的版本换了

  • 依然在招哈

  • 双方都没必要剑拔弩张的。到头来双方都是吃亏的

  • pytest 有数据驱动模块的。 不用写 for 循环。

  • 我没测试过哈,只是我们运维推荐我用的

  • 多谢提醒

  • 听说微软在做 windows 的 docker。不过我没用过哈

  • 但是集群化以后,就没办法固定 ip 了。只能端口映射。我们转集群的时候大家抱怨最多的就是没办法 ssh 进去看 log 了。要多几个步骤才能进入到容器里面

  • 赞一个,补充一下如果想用 vnc 连接,需要自己设置密码,要改一下镜像。

    鼓励楼主还有哪些 docker 方面的实践,都分享出来。 另外如果楼主是单点 docker 的话。 建议删除 docker0. 新建 br0 虚拟网桥然后把 docker 和宿主机都连到 br0 上来。然后用 none 模式启动,pipework 设置静态 ip。 这样就不用做宿主机:容器 端口映射了。 外部可直接通过 ip 访问

  • 看我上面的回答哈

  • 主要是重构方面的。当初我的同事用惯了 eclipse 了。 eclipse 的重构功能不能覆盖到字符串搜索。所以元素变量名改变的时候比较麻烦。不像 idea 中可以全局搜索字符串来帮你进行重构。我也不好强迫他们改用 idea。

  • case 之间不要做成相互依赖的。 如果一定要相互依赖,也要确保相互依赖的 case 在一台机器上有序的运行

  • 是的,我们目前还是处于 POC(Proof of Concept) 阶段。对于搭建私有云的客户还是需要到场地内建模并做各种测试以证明符合客户需求。以后要尝试 POT(Proof of Technology)。直接从产品的各个维度提供业界认可的权威报告。这个被老大列在了今年的计划当中。

  • 可怜我司就是做平台的。。。。所以我还是得硬着头皮去造数~~~ 最近跟某行合作。他们直接对测试用例,性能测试和测试数据提出了要求~。ToB 的业务想卖出去就是费事~~,我们还得派人去场地内在他们的环境上跑一遍性能测试以证明我们的产品能够支持他们的需求。

  • 主要是维护起来是个噩梦。本来业务变化就很大,不仅要改 case 还得改框架,我觉得维护成本太高。 为了能让不会写代码的人使用。要封装的东西太多,例如如何让不懂代码的人调试和 debug?光这一项就够让我头疼了。又例如我还被要求过提供一个酷炫的 UI。总之各种坑。

  • 恩? 没更新头像的不是不能发帖了么? bug 了?

  • python 的 json 模块不能搞这些事么?

  • 没有。。。。测试类型不一样。。。我这边是做数据测试。所以才用这玩意。你不做这种测试就随便看看了解一下就行了。。。

  • 额,最近在家比较闲

  • 恩,如果单从以后你面试的角度来看的话。 其实接触服务端的东西反而会给你加分的。创业公司人手少,本就不会区分的那么严格。 一线大厂也都喜欢有能力 own 一整个模块的。 所以我觉得如果为了以后的发展来考虑的话,反而应该多接触接触后端的东西。