Docker VNC 中 chrome 浏览器中文乱码问题请教

测试小书童 · 2017年07月21日 · 最后由 zengshuai 回复于 2020年11月15日 · 4924 次阅读
FROM selenium/standalone-chrome-debug:3.4.0

USER root

RUN apt-get update \
    && apt-get -y install ttf-wqy-microhei ttf-wqy-zenhei \
    && apt-get clean

编译: docker build -t debug/chinese .

  • 设置 compose.yml
hub:
  image: selenium/hub
  ports:
    - "4444:4444"
firefox:
  image: selenium/node-firefox
  ports:
    - 5901:5900
  links:
    - hub
chrome:
  image: selenium/node-chrome
  ports:
    - 5902:5900
  links:
    - hub
node-chrome-debug:
  image: selenium/node-chrome-debug
  ports:
    - 5900:5900
  links:
    - hub
chinese:
  image: debug/chinese
  ports:
    - 5903:5900
  links:
  - hub
  • 查看启动容器,chinese 为 5903 端口

  • 问题:
    • 用 vnc 进入到 192.168.99.100:5900 打开百度依然显示的乱码
    • 用 vnc 进入到 192.168.99.100:5903 无法连接

请问下后续的步骤该如何设置?@ycwdaaaa @lunamagic

后续

中文乱码问题已经解决

  • 家里的长城宽带的问题,造成我的 dockerfile 超时
  • dockerfile 的中文字体继承 selenium/node-chrome 是可以的,失败的 testcase 截图看到的是中文
  • dockerfile 的中文字体继承 standalone-chrome-debug 后,打开 5900 端口,无法用 vnc 连接,不知是不是公司防火墙问题
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 21 条回复 时间 点赞

自己写一个 dockerfile, 继承它的镜像,然后安装字体就行了。 我是这么写的:

  1. 你连接的 5903 好像不是你设置了字体的那个镜像把。还是原生的那个。
  2. 连接不上的问题,先用 netstate 查看一下容器是否开启了 5900 端口, 再去宿主机看看 iptables 的规则,NAT 那张表里是不是已经做了 5900 的地址转换了。

顺便一提, 启动的时候千万别忘了设置环境变量来控制 hub 和 node 的参数。 尤其是要挂载/dev/shm。 否则会 crash 到你怀疑人生的。 如下:

孙高飞 回复
  • 用 vnc 进入到 192.168.99.100:5900 打开百度依然显示的乱码
  • 用 vnc 进入到 192.168.99.100:5903 无法连接

我用 docker-machine restart default 过,依然如此

有点乱,你到底连的哪个容器?

@ycwdaaaa 我连的这个:192.168.99.100:5900,对应于 compose.yml 里的设置:

node-chrome-debug:
  image: selenium/node-chrome-debug
  ports:
    - 5900:5900
  links:
    - hub
chinese:
  image: debug/chinese
  ports:
    - 5903:5900
  links:
    - hub:cold_sweat: 

这个容器用的镜像不还是原生的么。 不是你做的那个 chinese 的。

孙高飞 回复

好的,我明白了改成这样了

node-chrome-debug:
  image: debug/chinese
  ports:
    - 5900:5900
  links:
    - hub

但是连接 5900 端口,无法连接,我先按照你给的建议我查下,感谢

你可以选择带中文的镜像

孙高飞 回复

你好,请教下,我这里的确经常遇到你说的问题,在哪里设置?是 docker-compose.yml 中吗?

你是说进场 crash 的问题么? 如果是这个问题确实是要在 docker-compose 里设置一下。下面是我之前写的 docker-compose,好久没用了,你可以试试。 主要是就是多个 node 和浏览器一起跑的时候内存利用不当的问题。 挂载并共享宿主机的/dev/shm 能有效解决这个问题

孙高飞 回复

非常感谢

你 vnc 无法链接的问题是什么原因

nanzhang 回复

带中文的镜像 能说下名字吗

孙高飞 回复


我是这样写的,执行 docker-comp up 报错

请问这是什么原因

白纸 回复

你这是格式错误了,单词拼错了,是 images,你可以用这个检查下你的 yml 文件格式:http://www.yamllint.com/

你 vnc 无法链接的问题是什么原因 ,解决了吗 我用了 dockerfile 的镜像后,也无法用 vnc 链接,但是 selenium/node-chrome-debug 可以

感谢,报错的问题解决了,但是遇到了,启动 docker-comp up 之后只启动了 hub 没启动 chrome
---
hub:
container_name: hub
image: selenium/hub
ports:
- "5554:4444"
registry:
container_name: chrometest
environment:
DBUS_SESSION_BUS_ADDRESS: /dev/null
NODE_MAX_INSTANCES: 5
NODE_MAX_SESSION: 5
NODE_REGISTER_CYCLE: 5000
image: test/chrome
links:
- hub
ports:
- "5901:5900"
volumes:
- "dev/shm:/dev/shm"

白纸 回复

遇到你同样的问题,确实加入中文字体的镜像,ping 不通,这是什么问题

楼主最后有解决连接不上问题没

songer 回复

正常是没问题的,看下上面的评论吧。时间有点长,忘记怎么解决的了。好像是粗心写错了什么东西

songer 回复

我也遇到了这个问题,请问最后你是怎么解决的?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册